home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
OBV235R2.ZIP
/
OBV.DOC
< prev
next >
Wrap
Text File
|
1996-11-10
|
431KB
|
9,905 lines
▄▓▄▄ ▄▄ ▄▄ ▄▄ ▄ ▄▄ ▄▓▄▄ ▄▄▓▄▄▄ ▄▄▄▄▄
▄███ █▓▄ ███▓ ███▓ ███▓ █▓▄ ███▓ ▄███ █▓▄ █▓███ ▓█▄ █▓██ ▓█▄
▐█▓█▌ ▐█▓▌█▓██▄ ▐▓██▌ ▓███ ▄▓█▄ ▐█▓▌▓███▐█▓█▌ ▐█▓▌█████ ▐▓█▌ ▀▀▀▀ █▓█
▐▓█▓▌ ▐██▌███▓▀█▄ ▐██▓▌ls! ██▓█ ▓█▓█ ▐██▌██▓█▐▓█▓▌ ▐██▌███▓█ ▐██▌ ██▓█▀▀▀
▐▒▓█▌ ▐▓█▌▓█▓█ ▐█▌▐▓▓█▌ █▄ ▓▓██ ▒▓██ ▐▓█▌▓▓██▐▒▓█▌ ▐▓█▌▓█▓██ ▐▓█▌ ▐▓▓█▌ ▐▓▄
▐░▒▓▌ ▐█▓▌▒▓██ ▐▓▌▐▒▓█▌ █▓█ ▒▓██ ░▒▓█ ▐█▓▌▒▓██▐░▒▓▌ ▐█▓▌▒▓██▓ ▐█▓▌ ▐▒▓█▌ ▐█▓▌
█░▒▓ ██▀ ░▒▓█ ██▀ ░▒▓█ ██▀ ░▒▓█ ▀░▒▓ ██▀ ░▒▓█ █░▒▓ ██▀ ░▒▓██ ▐██▌ ▐░▒▓▌ ███
▀░▒▀▀o ▀░▒▓▀▀b ▀░▒▓▀▀l ▀░▀i ▀▒▓▀v ▀░▀i ▀░▒▀▀o ▀░▒▓▀ ▀▀▀n ▀░▒▓██▀2
Oblivion/2 Bulletin Board System
Version 2.35
Copyright (c) 1996 Murray Stokely
All rights reserved. No portion of this documentation may be
changed or altered without the express prior permission of
the authors.
Oblivion/2 v2.35 TABLE OF CONTENTS
────────────────────────────────────────────────────────────────────
Section 1: Legal Information ..................................... 2
1.1 Foreword .................................................. 3
1.2 General Overview .......................................... 3
1.3 Registration .............................................. 4
1.4 For the Beginning Sysop ................................... 6
1.4.1 Security Considerations ............................... 6
1.4.1.1 Co-Sysops ......................................... 6
1.4.1.2 Group Modifications ............................... 7
1.4.1.3 Sysop Functions ................................... 7
1.4.1.4 Other Tips ........................................ 7
1.4.2 The DSZ Logfile ....................................... 8
1.4.3 Batch Oriented File System ............................ 8
1.4.4 The Menuing System .................................... 8
1.4.5 System News Message Base .............................. 9
1.5 Waiting For Caller Screen Commands ........................ 9
Section 2: Access Conditioning System ........................... 12
Section 3: Configuration ........................................ 15
3.1 System Information ....................................... 15
3.2 System Information 2 ..................................... 18
3.3 System Information 3 ..................................... 20
3.4 Look and Feel ............................................ 22
3.5 Communication Information ................................ 23
3.6 Filename Configuration ................................... 25
3.7 ACS Configuration / ACS Configuration 2 .................. 26
3.8 File Section ............................................. 28
3.9 Email Information ........................................ 30
3.10 Message Section ......................................... 30
3.11 Color Configuration ..................................... 31
3.12 Val User/NUV Configuration .............................. 31
3.13 Infoforms ............................................... 33
3.14 WFC Options ............................................. 35
Section 4: Oblivion/2 External Utilities ........................ 36
4.1 MenuCode ................................................. 36
4.2 StatCode ................................................. 37
4.3 UnPack ................................................... 39
4.4 MakeProm ................................................. 39
4.5 MakeHelp ................................................. 39
4.6 EP ....................................................... 39
4.7 IP ....................................................... 40
4.8 AnsiTran ................................................. 40
Section 5: Oblivion/2 Commandline Parameters .................... 41
Section 6: Sysop Online Keys .................................... 42
Section 7: Event Editor ......................................... 44
7.1 Errorlevel Events ........................................ 45
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Main Documentation i
Oblivion/2 v2.35 TABLE OF CONTENTS
────────────────────────────────────────────────────────────────────
7.2 Code Execution Events .................................... 46
7.3 Sysop Availability Events ................................ 46
7.4 User ACS Events .......................................... 46
Section 8: User Editor .......................................... 48
8.1 User Search Editor ....................................... 50
8.2 Wanted Users ............................................. 51
Section 9: Parameter Editor ..................................... 52
Section 10: Blacklist ........................................... 54
Section 11: Prompt Editor ....................................... 55
Section 12: Menu Prompt Editor .................................. 57
Section 13: Protocol Editor ..................................... 59
Section 14: Archive Editor ...................................... 62
14.1 Archive Signature Strings ............................... 65
Section 15: Conference Editor ................................... 67
Section 16: Data Area Configuration ............................. 68
Section 17: Email ............................................... 72
17.1 The Email Tag System .................................... 72
17.2 Group Mail .............................................. 73
Section 18: The Chat System ..................................... 75
18.1 Configurable Chat Screen ................................ 75
Section 19: Generic Menu Configuration .......................... 78
Section 20: Mini-DOS ............................................ 80
Section 21: Echomail Networking Oblivion/2 ...................... 81
21.1 Using a FrontEnd Mailer with Oblivion/2 ................. 81
21.2 Using a Mail Processor with Oblivion/2 .................. 82
Section 22: Menu Editor ......................................... 84
22.1 Using the Menu Editor ................................... 84
22.2 The Pulldown System ..................................... 86
22.3 Hidden Commands and Wildcarding ......................... 89
22.4 Command Stacking ........................................ 90
22.5 The Command Editor ...................................... 97
22.5.1 -? : Control Commands ............................... 98
22.5.2 &? : MultiNode Commands ............................ 105
22.5.3 {? : Matrix Commands ............................... 107
22.5.4 !? : Global Newscan Commands ....................... 108
22.5.5 .? : Door Commands ................................. 109
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Main Documentation ii
Oblivion/2 v2.35 TABLE OF CONTENTS
────────────────────────────────────────────────────────────────────
22.5.6 ^? : New User Voting Commands ...................... 110
22.5.7 *? : Sysop Commands ................................ 111
22.5.8 +? : Color Setting Commands ........................ 112
22.5.9 [? : Main Menu Commands ............................ 113
22.5.10 C? : Conference Editor Commands ................... 116
22.5.11 D? : Data Area Commands ........................... 116
22.5.12 E? : Email Commands ............................... 118
22.5.13 F? : File Commands ................................ 121
22.5.14 J? : Join Conference Commands ..................... 125
22.5.15 M? : Message Commands ............................. 126
22.5.16 N? : Message Reading Commands ..................... 129
22.5.17 Q? : QWKMail Menu Commands ........................ 131
22.5.18 R? : Top Ten Listing Commands ..................... 132
22.5.19 S? : Message Base Sponsor Commands ................ 133
22.5.20 T? : File Sponsor Commands ........................ 134
22.5.21 V? : Voting Commands .............................. 137
Section 23: File Areas ......................................... 138
23.1 File Area Editor ....................................... 138
23.2 File Listing Prompt Commands ........................... 139
23.3 The File Catalog ....................................... 140
Section 24: The Upload Checker ................................. 142
Section 25: Message Bases ...................................... 144
25.1 Message Base Editor .................................... 144
25.2 Using the JAM Message Base ............................. 144
25.3 Message Reading Prompt Commands ........................ 147
Section 26: Message Editor Commands ............................ 149
Section 27: Making Repeat Ansi Screens ......................... 150
Section 28: Making Standard Ansi Screens ....................... 153
28.1 Standard MCI Codes ..................................... 153
28.2 Status Screen Library Ansis ............................ 155
28.3 Miscellaneous Ansis .................................... 161
28.4 File Description MCI Codes ............................. 162
28.5 Color MCI Codes ........................................ 162
Section 29: Functions of ANSI.SYS .............................. 165
Section 30: Help Systems, Registration Sites, Support .......... 168
Section 31: Acknowledgements, Credits .......................... 170
Section 32: Thanks ............................................. 171
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Main Documentation iii
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
Section 1: LEGAL INFORMATION
This is copyrighted software owned by Murray Stokely. This is NOT
public domain or freeware. Murray Stokely grants you a TEMPORARY
license to try this software for EVALUATION purposes ONLY! You may
use this package for an evaluation time of 30 days. After this time
you have to register Oblivion/2 or stop using it. Any further use
of this software is strictly forbidden and may result in legal
action.
To register Oblivion/2, see Section 1.3 and the order forms called
ORDER.FRM in this package. This is for NONCOMMERCIAL users only!
Commercial users please contact Murray Stokely directly.
In no way does the author guarantee future versions of Oblivion/2,
nor is he in any way obligated to provide future versions of, or
support for, Oblivion/2. Other members of administration are
also not obligated to provide support for Oblivion/2.
Oblivion/2 is provided "as is" without warrant of any kind, neither
expressed nor implied. The author only guarantees that Oblivion/2
will occupy disk space.
In no event will the author be liable to you for any damages,
including lost profits, lost savings or other incidental or
consequential damages arising out of the use of this program.
All mentioned products and packages are copyrighted by and
trademarks of their respective holders.
Registered users receive a text file with a unique serial number.
These files are copyrighted stuff owned by Murray Stokely and MUST
NOT be distributed, hacked, reverse-engineered, etc. If you don't
follow these regulations, your license expires immediately and legal
actions may be started against you.
One unique serial number allows you to run Oblivion/2 on ONE system
at the same time only (system meaning installation/configuration).
If you are using the same serial number on different systems you
need an extra license (serial number) for the other system(s). This
does not apply to multi-line systems running Oblivion/2 on the same
machine but on several lines, nor does it apply to multi-line
systems running Oblivion/2 on a single network, using several lines,
but for one bulletin board system.
Modification, reverse engineering, and "run-time" manipulation of
any of the files included in the Oblivion/2 packages - especially
development, distribution, and use of so-called "patch programs"
which modify the executables - is strictly prohibited and will
result in immediate legal action.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 2
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
1.1: Foreword
Welcome to the world of the Bulletin Board System, and more
importantly, to the realm of the aspiring or veteran sysop. Before
you sits the archive of an exceptional BBS package, Oblivion/2.
With today's bulletin board demands, Oblivion/2 is a high ranking
contender with the competition. Today's sysop looks for high
configurability, ease of use, power at their finger tips.
Oblivion/2 presents all of these in an easy to use and easy to
understand package. Whether you're a beginner or a veteran sysop,
Oblivion/2 can offer you what few other softwares can. Amazing
expandibility and flexibility, molding the look and feel of the
software to any other software you might like (without their
annoying qualities), and a simple, sysop-friendly configuration.
The documentation you are reading was rewritten with you, the end
sysop, in mind. It was written to be clear and concise and answer
any questions about the package you might have. I hope it is
adequate, that it will open your eyes to an incredible software, and
that it will help you take those first steps towards what could be a
wonderful sysoping experience, as well as what will ultimately be a
system that any user will call and enjoy.
Oblivion/2 BBS was originally designed by Eric Katz (also known as
Darkened Enmity) and Rony Daher (also known as Lord Tracer).
However, in the construction of version 2.35, Darkened Enmity dropped
Oblivion/2 as the main programmer of the software and gave control to
Murrary Stokely (also known as Shivan Bastard). There are a few
sections in this documentation that were written by Lord Tracer, and
as such I want to acknowledge the work he did on the original
Oblivion/2 documentation. The parts of his documentation that were
used have been noted.
1.2: General Overview
Oblivion/2 was originally designed to meet the needs of today's
system operators and users. Thus it has virtually combined the two
main elements essential to any bulletin board software: Power and
ultimate configurability for the sysop, and ease of use for the user.
There are many things that make Oblivion/2 the software of choice for
many sysops, two of these being the incredibly powerful (yet easy to
use) menuing system, and the ACS system as well. With these two
tools alone, possibilities are nearly endless. And, in future
versions SPaM (definition?) will be developed and it increases the
previously remarkable levels of configurability to new and exciting
heights.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 3
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
This is a list of the major features inherent in Oblivion/2:
■ Powerful menu editor. Allows for configuring all aspects of the
BBS.
■ Configurable string (prompt) editor. Internal strings are a thing
of the past, and with this editor, you can add a 100% original
feel to your system.
■ Optimized for increased speed. Runs fast on any machine.
■ Support for multiple menusets.
■ Support for multiple status screen sets.
■ Support for multiple menu prompts.
■ Echomail/Netmail compatible in the JAM and Fido/*.MSG formats.
■ Configurable Data Area system. With this you can create your own
BBS lists, oneliners, rumors, ansi galleries, and configure them
to look and behave however you wish.
■ Support for DORINFO1.DEF/DOOR.SR/DOOR.SYS door file formats.
■ Support for a maximum of 255 message and 255 file conferences.
■ Internal upload processing system. Checks all files for CRC
errors and viruses, runs age tests, can insert and remove text
files. Can also perform other sysop definable maintenance
routines.
■ Support for multiple archivers. Any of these archivers can be
used to pack and unpack anything on the BBS, from files to QWK
packets. This system also uses archive signature string
recognition, thus not having to rely on file extensions.
■ Advanced user editor with internal searching routines.
■ Parameter editor for easy control and manipulation of user levels.
■ Configurable generic menu system. It is no longer necessary for
sysops to change ansi's anytime a menu change is made with this
system, as it is all internal.
■ The ability to run more than one BBS software as sub-boards.
■ The ability to password-protect entry to your BBS to make it more
secure.
■ Internal ANSI and Avatar drivers - ANSI.SYS is not required.
■ Releases all unused time slices in multitasking environments,
specifically DESQview, OS/2, and Windows.
■ Fullscreen ANSI message editor with sysop-defineable message
headers.
■ Contains full featured split-screen chat.
1.3: Registration
The registration of Oblivion/2 is simple. All of the registrations
are handled through the HQ support system. This system is currently
Stronghold Enterprises at 403-456-5699.
The registration fee for Oblivion/2 is $50 US, payable in either a
cashier's cheque or a money order. Please fill out and print a copy
of the ORDER.FRM file (available in all distribution archives or on
Stronghold Enterprises). Include the order form with your
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 4
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
registration fee when you mail it to the following address:
Vincent Danen
#108 13806-24 St
Edmonton, AB
T5Y 1J7
Canada
Make all cheques or money orders payable to Vincent Danen.
To clear up some fine points on registration, please keep the
following in mind:
■ A completed ORDER.FRM MUST be sent with your order.
■ Personal cheques are accepted, however your registration will be
delayed due to the time it takes for the banks to clear the
cheque. Cashier's cheques or money orders are preferred.
■ You cannot transfer your registration to a friend. All
registrations and transfers are handled by us.
■ If you're registering overseas, or anywhere outside of North
America (US and Canada), make sure to get your money order drawn
up at a major bank. Smaller chains are VERY hard to cash here.
For Europeans and Australians, try to use Citibank as it works
well.
■ If your handle on Stronghold Enterprises (if you are a user) is
different from the sysop name which you are using for your BBS,
please indicate this somewhere on your ORDER.FRM.
Registrations are handled through a serial number system. When we
validate your registration, you will receive a ZIP file containing a
textfile called SERIAL.NUM. Inside this textfile you will find a
BBS Name, BBS Sysop, and a 20-digit serial number. Enter that
information in your Oblivion/2 System Information Configuration
EXACTLY as it appears in the SERIAL.NUM file. If the information is
not correct, the BBS will not register.
The method on receiving the serial number must be indicated clearly
on your registration form. You may choose from obtaining it from
Stronghold Enterprises or via crash netmail or via the postal
service. If you choose the postal service, please include a
self-addressed stamped envelope.
Should you lose your SERIAL.NUM, please contact any member of the
Oblivion/2 staff and a new one will be made available to you.
If you decide to distribute your SERIAL.NUM file, a beta version of
Oblivion/2, or anything reserved for registered sysops only, your
registration will be immediately cancelled. No questions asked. No
refunds given. No exceptions made.
The Oblivion/2 team consists of the following members:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 5
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
Shivan Bastard Programmer
Lasher Documentation, Beta Coordinator, Registrations,
Canadian Headquarters
Patriot Maintaining the support networks
MindCrime World Headquarters
If you wish to reach a member of the Oblivion/2 team, please mail us
on Stronghold Enterprises or at the below address. Due to the large
amount of mail received, we cannot guarantee replies.
Oblivion/2 Team
#108 13806-24 St
Edmonton, AB
T5Y 1J7
Canada
or via the following internet email addresses:
Shivan Bastard obv@acid.org
Lasher obv@acid.org
Patriot jwaleke@sun.science.wayne.edu
MindCrime mike@exit109.com
1.4: For the Beginning Sysop
This section of the documentation is to help out first-time sysops
new to Oblivion/2. As Oblivion/2 is very different from most other
softwares, there are a few things that may throw off and discourage
the beginning sysop. This section is designed to get you on track
quickly and easily. Veteran sysops of Oblivion/2 probably have no
need to read this section.
1.4.1: Security Considerations
Oblivion/2 is one of the most secure BBS softwares ever written,
certainly a lot better than your average Telegard or PCBoard setup.
But there are still some BASIC security issues that need to be
studied, these are not Oblivion/2 specific, as you can apply these
topics to ANY software.
1.4.1.1: Co-Sysops
90% of the time, when someone does damage to a computer system, it
is accessed from a co-sysop account. Whether your co-sysop has
turned against you (unlikely) or someone has hacked his passsword,
it doesnt realy matter, theres only one way to prevent it. Keep a
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 6
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
tight grip on his security level. If he's a file sysop, does he
need access to the menu editor? Does anyone need access to the
textfile editor? The textfile and menu editors can become a lethal
combination in the hands of an intelligent hacker. All you have to
do is write a batch file to do your damage with the text editor,
then use the menu editor to execute that batch file (.E). I suggest
taking the text editor out of your sysop menu all together, or at
least give it the "=" ACS (local keyboard only).
1.4.1.2: Group Modifications
Never, EVER install a mod you dont understand... Look through the
menu editor in one menu, with your obv2 docs in another window (or
printed out) and look for commands that run external programs,
modify users ACS, preform sysop commands, etc. Also look to see if
any batch files were included with the mod, if there were, then
look over them. Just because a mod was released by a respectable
group like illness or acidic, it doesnt mean that someone hasn't
modified it since then (look for the zip-verification in newer acidic
mods).
1.4.1.3: Sysop Functions
If you're running under Windows95, DESQview, or OS/2, the first
thing you want to do is set up another node, only for local access.
This way you can do all you want to the board and still have it
online for incoming callers. This is also an excellent security
measure. You can set the ACS for ALL potential security
compromising commands to "=" (local access only) or "V#" (only
available on node #). Another tip for the highly cautious sysop is
to make all your menus READ ONLY (through dos's ATTRIB command).
1.4.1.4: Other Tips
Rename FORMAT.COM and DELTREE.COM, this will prevent extensive
damage done from batch oriented hacking. Just rename them to
format-.com and treedel.com or whatever you like best. You can also
just delete them and keep them on floppy disk if you don't use them
very often.
Add the following to your autoexec.bat "SET COPYCMD /-Y". This will
force DOS to prompt for action when you try to copy a file over an
existing one, this is sometimes the default setup, sometimes it
isn't. Better to be safe than sorry. This will prevent a potential
hacker from having the ability to copy over important system files.
The most important thing to understanding Oblivion/2 security is to
read the ACS and menu command sections of the docs. If you dont
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 7
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
understand your software, you wont be able to use it efficiently.
Simple as that.
1.4.2: The DSZ Logfile
This trips up a lot of new sysops and needs a brief explanation.
Many times a new sysop, eager to take a look at the package is
stumped by the error message: "Set the DSZLOG to C:\OBV\DSZLOG.1 or
something similar. The DSZ log is a logfile that logs file
transfers for many different protocols, but most notably DSZ.COM.
DSZ is for X/Y/Zmodem file transfers. The logfile is read by
Oblivion/2 for many different reasons, and therefore one needs to
be (and usually is) created. However, many programs need to know
where to create the logfile, thus the DSZLOG environment variable.
If you have not defined this variable, Oblivion/2 will not run. You
can define this a few different ways, but the most popular is to add
the line "SET DSZLOG=C:\OBV\DSZLOG.1" in your AUTOEXEC.BAT file. You
can also define this logfile in the batch files that load up
Oblivion/2. However, if you run a multinode system, the extension of
the logfile must reflect the node that is currently running. For
example, if you have users logging into node 2 of your BBS, set
DSZLOG to C:\OBV\DSZLOG.2 in the batch files that loads the BBS.
Replace the path with your main Oblivion/2 directory path (the path
that Oblivion/2 gives you when exiting with an error).
1.4.3: Batch Oriented File System
Oblivion/2's file system is known as a batch oriented file system.
This means that Oblivion/2 can easily interface with common DOS
batch files for various different tasks. You can do things like
downloading, uploading, typing, moving, deleting, changing,
information gathering, custom batch operations, etc. Nearly all of
Oblivion/2's file operations use this batch method. This batch
system is inherent to Oblivion/2, and you may select up to 50 files
for any given operation. You can also customize operations by using
DOS batch files. Batch Oriented File System is a good name for
these operations, as Oblivion/2 gathers the files into a "batch" of
files, while also allowing you to use normal batch files to
manipulate them further.
1.4.4: The Menuing System
Oblivion/2 was created with both sysops and users in mind, and the
menus reflect this. There are menus that everyone can access, and
then there are "sponsor" menus that sysops, co-sysops, etc. can use.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 8
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
The sponsor menus are there to maintain certain sections of the
system: overall, files, and messages. The sponsor menus, since they
contain some commands that could be damaging to your system in the
wrong hands, are generally reserved for sysops and co-sysops and the
access on these menus should be fairly high. The default menus that
come with Oblivion/2 are designed like this. The sponsor menus can
be reached by pressing the % key at the main, file, and messages
menus.
1.4.5: System News Message Base
This base is particularly useful to sysops who wish to alert users
to new news, bulletins, etc. It is a normal message base (see
Section 25 later in the documentation for details on how to setup
message bases), with the MANDATORY flag set to Yes. This means that
when users log in, they will read the messages posted there. This
should have a post access where only you and (optionally) your
co-sysops have access. You can also change the read access so that
only certain users can read it. This way, you can make multiple
news bases that will be scanned upon login for different users of
different access levels.
There is a lot to learn with Oblivion/2, but it is easier to take
your time and learn things one by one as opposed to trying to mash
it all into your head at once. These four tips will give you a
basic understanding of some very rudimentary commands you can make
Oblivion/2 do, and also give you an understanding of how the software
can be made to operate. The rest of the docs contain clear
information on how to set up, maintain, create, and modify your
Oblivion/2 system.
1.5: Waiting For Caller Screen Commands
The Waiting for Caller Screen, or WFC screen, has many commands that
you can use to ease maintenance on your BBS. With 27 built-in
commands with an additional 9 that are sysop-defined, you have a
fair amount of power at your fingertips. But they need a little
explaining as well.
You may also select which WFC screen you wish loaded. You may use
the 2.30 WFC screen or the new 2.35 WFC screen by Chromatik. Use
the TAB key to switch between them.
In order to define the 9 sysop-defined functions available at the
WFC screen, you will need to edit the WFC Options in the System
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 9
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
Configuration (see Section 3.14).
More Commands
This will call up the next screen of 9 commands for you to
choose from via using your function keys.
Exit
This will exit Oblivion/2 and go back to DOS.
Local
Calls a local logon.
Send Carrier
This command will send carrier. This is typically used if a
user is in his terminal program and you want to switch from a
voice connection to a data connection. See Section 3.5 for more
information.
Rec Carrier
This command will receive carrier. This is the opposite of the
above command.
Launch Menu
This command will launch a specific menu. It will prompt you
for the MNU name and will load that specific menu.
Dos Shell
This will invoke a DOS shell.
Config
This command loads the System Configuration.
Term Program
This command will run a batchfile called TERM.BAT in your main
Oblivion/2 directory. You can use this to load up your
favourite terminal program.
View Logs
This command will allow you to view the sysop logs.
Mess. Newscan
This will invoke a global message newscan.
File Newscan
This will invoke a global file newscan.
Sysop Mail
This command will read any new email written to the sysop, or
user number one.
Mail Scan
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 10
Section 1 LEGAL INFORMATION
────────────────────────────────────────────────────────────────────
This command will scan all the email on your system from the
date specified to the current date.
Sysop Menu
This command will launch SYSOP.MNU.
MiniDos
This command will invoke Oblivion/2's mini-dos.
Menu Editor
This command will invoke the menu editor.
User Editor
This command will invoke the user editor.
Menu Prompts
This command will invoke the menu prompt editor.
Prompt Editor
This command will invoke the prompt (or string) editor.
Protocols
This command will invoke the protocol editor.
Event Editor
This command will invoke the event editor.
Libraries
This command will invoke the library editor, where you can
manipulate your menu libraries and status screen libraries.
Infoforms
This command will allow you to view your user's infoforms. You
may choose to look at only one infoform for one user or all
infoforms for all users, or a combination thereof.
Deleted List
This command will invoke the Deleted List (or Blacklist) editor.
Make User
This command will allow you to make a new user. You can only
define a few fields for the user, but when that user first
applies, they will be prompted to fill out any mandatory
infoforms, their birthdate, and other user-specific fields.
Level Editor
This command will invoke the parameter editor.
Archivers
This command will invoke the archiver editor.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 11
Section 2 ACCESS CONDITIONING SYSTEM
────────────────────────────────────────────────────────────────────
Section 2: ACCESS CONDITIONING SYSTEM
The Access Conditioning System (ACS) is a very unique and powerful
tool that many BBS systems are now utilizing. With ACS you can
restrict baud rates, time limits, area codes, file points, as well as
the traditional user access levels. ACS gives you, the sysop, total
control over who is accessing your system and when.
Before you attempt to use ACS, however, you should realize that it
does not have to be a complicated thing, but can often become one.
It can seem like a programming language all on it's own. And in some
respects it is. If you have problems with ACS and things don't go
quite as planned the first time, try it again. It's almost like math
in where things are processed in different places with different
conditioners... It may take some time to get used to.
Below is a list of valid ACS commands:
ACS Flag Description
────────────────────────────────────────────────────────────────────
Ax True if user age is greater than X
Bx True if baud rate (without the trailing 00) is
greater or equal to X. (ie. 3, 12, 24, 48,
96, 144, 168, 192, 384, 576)
Cx True if user hasn't changed his password in
X days
Dx True if user file level is greater or equal
to X
Ex True if user called more than X times today
Fx True if X flag is set in the first flagset
(A-Z)
Gx True if user is male and X=0, true if user is
female and X=1
Hx True if user is using menuset X
Ix True if user is using statset X
Jx True if user has ansi and X=0, true if user
has avatar and X=1, true if user has RIP and
X=2
Kx True if absolute file area # is equal to the
value of X
Lx True if absolute message area # is equal to
the value of X
Mx True if message conference # is equal to the
value of X
Nx True if file conference # is equal to the
value of X
Ox True if X flag is set in the second flagset
(A-Z)
Px True if user has X file points
Qx True after user has called more than X times
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 12
Section 2 ACCESS CONDITIONING SYSTEM
────────────────────────────────────────────────────────────────────
Rx True if user total calls are greater than X
Sx True if user level is greater or equal to X
Tx True if user time left is greater than the
value of X
Ux True if user number is equal to X
Vx True is user is on node X
Yx True if it is at least X minutes past
midnight
Xy True if the first three numbers of the user's
phone number match (ie. X216 holds true for
all users in the area code 216) X216464
holds true for all user's who are in area
code 216 with the prefix 464
Zx True if day of the week is equal to X where X
can be 0=Sunday through 6=Saturday
- False
+ True
()'s Tells Oblivion/2 to process the codes in
parenthesis before any other codes
| Used to "or" what is on the left of the pipe
with what is on the right of the pipe
~ Makes a code false that would otherwise be
true and vice versa
\ True if the Fail Flag is true
= True if user is local
[ True only when system is run multinode
] True if screen pausing is on
; True if input is not broken using the space
bar or the ESC key
, Used to prompt for the sysop password
* True if user meets their Post/Call Ratio
_ True if user is available for Multinode Chat
$x True if user has changed their password in X
days (ie. $10 is true if the user changed his
password more than 10 days ago)
:x True if the current message # in single
reading is greater or equal to X
!x True if the current menuset number is equal
to X
%x True if the current status screen set number
is equal to X
^x True if the current menu prompt number is
equal to X
Below are a few examples of ACS usage:
~U2 The option is accessible by everyone EXCEPT
user #2
S20D20 The option is accessible to everyone as long
as their main/file levels are greater or
equal to 20
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 13
Section 2 ACCESS CONDITIONING SYSTEM
────────────────────────────────────────────────────────────────────
Y120 The option is accessible from 2:00am until
11:59pm
Y60~Y120 The option is accessible from 1:00am until
2:00am
=S255 The option is accessible only to people on the
local terminal, and the user has a security
level of 255
P100|S50 The option is accessible to people with 100 or
more file points OR they have a security
level of 50 or more.
T90|FABC The option is accessible to people with more
than 90 minutes left OR have flags A, B, and
C in the first ACS flag set turned on.
B144|FA The option is accessible to people connected
at 14400 bps or higher, OR have flag A in the
first ACS flag set turned on.
A18G0 The option is accessible to people 18 years of
age and older, who are male.
A18G1 The option is accessible to people 18 years of
age and older, who are female.
s20d20~U2|(U2Y60~Y120) The option is accessible to anyone with a
security level AND a file level of 20 or
higher, EXCEPT user #2, OR is accessible by
user #2 between the hours of 1am and 2am.
NOTE: There are two different sets of user ACS flags. The first set
is accessible by the Fx ACS flag, while the second set is accessible
by the Ox ACS flag. These are internal flags you can use to
configure different things for different users. When referring to
ACS flags and user ACS flags, remember that they are two different
things. The users have two sets of user ACS flags attributed to
them, each from a range of A through Z. Both sets of user ACS flags
can be toggled in two different ways. The first is manually in the
User Editor, where you can toggle and view the user account while
manipulating their ACS flags. The second is through the menuing
system and menu commands. The menu commands for each set is as
follows:
First set of user ACS flags:
Command Key: -S
CString : +ABC
Function : Turns flags A, B, and C on. The syntax is +x to turn
flag x on and -x to turn flag x off.
Second set of user ACS flags:
Command Key: -Y
CString : -XYZ
Function : Turns flags X, Y, and Z off. The syntax is +x turn
flag x on and -x to turn flag x off.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 14
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
Section 3: CONFIGURATION
The main Oblivion/2 configuration is like the "central processor" of
your entire Bulletin Board System. This is where you will define
constants for your system, things that are not varied and will remain
virtually permanent.
The configuration system has a number of global commands you may use
to ease your editing. CTRL-Y will clear an entire field, to advance
to the next option, use the down arrow or the ENTER key. To go back
to the previous option, use the up arrow. CTRL-V will toggle insert
mode on and off. CTRL-Z is the command to exit from the
configuration menus.
Each menu in the configuration system deals with a different aspect
of your BBS. Use your arrow keys to scroll your way through the
menus.
3.1: System Information
Board Name
The name of the BBS that you registered. This must be spelled the
same as in the SERIAL.NUM file you received upon registering.
Sysop Name
The name or alias that you registered. This must be spelled the
same as in the SERIAL.NUM file you received upon registering.
Validation Code
This is the serial number you received in the SERIAL.NUM file you
received upon registering.
MultiNode Operation
This option must be set to Yes if you intend to run more than one
node.
Node Number
This is the node number for the current node. Leave this at 1 if
you are not going to be running the BBS multi-node. This field
must only be changed if you are not going to use the -N x command
line parameter when loading Oblivion/2 (ie. if you use different
executables in different directories with different configuration
files, then set this number to the proper node number).
Max. Mins before Time-Out
This field can be anything in a range of 1 through 5. This is the
amount of minutes Oblivion/2 will sit idle without any keyboard
input from the user before dropping carrier on them.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 15
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
Sysop Password
The sysop password, which is used to protect the sysop menu and
other definable functions.
System Password
If this is set, the user will have to enter this password before
being able to login to the BBS.
New User Password
If this is set, the user will have to enter this password before
being able to apply for an account (go through the new user
process).
Days to Save Log
This field can be anything in a range of 1 through 200. This is
the amount of days Oblivion/2 will save the system logs before
purging them and keeping them at this number.
ScrollBack Lines
This field can be anything in a range of 1 through 2000. This is
the amount of lines Oblivion/2 will keep in the scrollback buffer.
This buffer can be accessed by the online sysop function key F4
and can be used to look at any text or ansi that may have scrolled
off the screen. The higher this number is set, the more memory
Oblivion/2 will require. If this number is too high, Oblivion/2
will crash with an ERROR 203 because it will have found no memory
for it to use. If this happens, lower this number.
Page Times
This field can be anything in a range of 1 through 100. This is
the number of times a user may page you before the system will
disallow them from paging again.
QWKName
This is the filename (maximum of 8 characters) that Oblivion/2
will place before the .QWK extension (ie. OBLIVION would produce
OBLIVION.QWK and require OBLIVION.REP reply uploads) for QWK
downloads.
BIOS Writes
If this option is set to Yes, the screen writes will be handled
through the BIOS. This is normally very slow and should not be
used, but may improve some multitasking problems. For normal
options, this should remain No.
Use MAINTAIN.BAT
Refer to Section 24 for more information on this batchfile.
Kick Off Unvalidated Users
If this option is set to Yes, users who are trying to check their
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 16
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
status and are not yet validated, will be hung up on. If it is
set to No, they will be allowed to return to the Matrix.
Starting Menu
This option tells Oblivion/2 which menu to go to once the
MATRIX.MNU (your matrix) is finished with and a user is logging
in. This is the first menu a user will go through after logging
into the system via the matrix. Do not include a .MNU extension.
Sysop Autologin
If this option is set to Yes, when you load the BBS with the -L
commandline (local) you will be automatically logged into the
system.
Turn Status Line On
If this option is set to Yes, the sysop status line (appearing on
line 25 of your local screen) will be turned on. This status line
gives important information about the current user.
Special Login
If this option is set to Yes, you can define how user logins are
processed. Leaving this at No will make Oblivion/2 use the
default login. This is a nice option to use as you can configure
the user login process completely. You can put it any order you
want, make it look however you like, it's entirely up to you. The
BBS will go to the menu defined in the Starting Menu (above; the
default is TOP.MNU) after the user logs in.
The following is a menu re-creation of Oblivion/2's default login
process:
Command Key: -+
Function : Displays a random WELCOME.x file.
Command Key: -N
CString : STATUS.ANS
Function : Displays STATUS.ANS from the current Stat Screen
Library (this is the login status screen).
Command Key: -(
Function : Prompts the user to hit return.
Command Key: -@
Function : Reads system notices.
Command Key: &]
ACS : [
Function : Sets user as not available for multinode chat IF
multinode operations are on.
Command Key: &A
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 17
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
ACS : [&
Function : Asks user whether he wants to be available for
multinode chat or not IF multinode operations are
on AND
Command Key: EN
Function : Scans for new personal Email.
Command Key: -|
Function : Checks for incomplete infoforms.
Command Key: MZ
Function : Scans for new messages in mandatory message
areas.
Command Key: VC
Function : Checks for unanswered mandatory voting questions.
Command Key: -_
Function : Pages sysop if user has the Wanted flag on.
3.2: System Information 2
Library Data Ansis
If this option is set to Yes, all the ansis for the data areas
will be looked for in the status screen libraries. If it is set
to No, the ansis will be looked for in the textfile directory.
However, if the BBS cannot find the correct data area ansis in the
user's current status screen library (and this option is set to
Yes) it will automatically search for those ansis in the textfile
directory.
Search All Areas
If this option is set to Yes, the BBS will check all of the file
areas on the BBS for duplicate files when you are globally
uploading or adding files. With this option enabled, uploads may
take a little longer, but there is no risk of having the same file
in two different file areas on the BBS. If this option is set to
No, only the current file area will be searched for duplicates.
Use U/L Checker
If this option is set to Yes, when files are uploaded to the
board, they will be checked with the internal upload checker. See
Section 24 for more information on the upload checker.
Day Constraint
This field can be anything in the range of 0 to 5000. This
setting defines, by number of days, the oldest files that can be
sent to the system. For example, if this field was set to 365
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 18
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
days, anything older than one year (by newest file date) will fail
the internal upload checker's Age Test. A setting of 0 will
disable this option.
Scan Command
This is the command line used by the internal upload checker to
scan new uploads for viruses. You can also call a batchfile
instead of an executable. When uploads are sent to the BBS, they
are unarchived into the defined work directory (ie. C:\OBV\WORK).
If the system is run multinode, the work directory is different
for each node. C:\OBV\WORK\1 for node 1, C:\OBV\WORK\2 for node
2, etc. It is suggested that when you define the virus scan
command, that you use the wildcard C:\OBV\WORK\*.* and any other
commandline the virus scanner needs to scan all subdirectories as
well. This will insure, that no matter what node you or the user
is on, the scanner will scan all directories and will get the
uploaded file.
BBS Ad to Add
You can define a file to be inserted into every archive uploaded
with this command. Define the full path and filename of the file
you wish inserted. This can be a loader, textfile, or any other
file you wish. For example, the file C:\OBV\CALL.ME! would be
inserted to each uploaded archive if it was defined on this line.
Zip Comment
This is where you define the comment file to be inserted into
uploaded archives (ZIP, ARJ, RAR, etc.). Use the full path and
filename.
Delete List
This is a simple text file with a list of file names you wish to
be deleted from uploaded archives if they are found. These are
typically other BBS ads. Be careful that you only insert UNIQUE
filenames otherwise you may end up deleting an important file.
One filename per line in the text file.
Check For Free Space at WFC
Whether the BBS will check all disk drives for the amount of free
space each time the Waiting For Caller screen is loaded. If this
option is set to Yes, some LAN users may experience problems when
running the BBS on a network.
Opts Per Line
The number of options per line the BBS should place in the generic
menus. This field can be anything in the range of 1 through 9.
Generic in Menu Libs
Whether or not generic menu ansis will be included in the menu set
library files as opposed to the default of being included in the
status screen library files. Please refer to Section 19 for more
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 19
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
information on generic menusets.
Use File Catalog
If this option is set to Yes, the BBS will use the File Catalog to
do duplicate file searches upon a file being uploaded.
File Catalog Look Up
If this option is set to Yes, the BBS will use the File Catalog
for the look up functions on various file options. Be sure that
if you have the File Catalog options set to Yes that you generate
a File Catalog using the TG menu command.
Conf Search
If this option is set to Yes, the BBS will search all conferences
for duplicate files upon a file being uploaded.
Lines Per Node
This field defines the number of lines (on the screen) per node
for real-time multinode chat. It may be a value between 2-12.
Support RIP
If Yes, the BBS will attempt to detect if the caller is using a
RIP terminal. If this is set to No, the BBS will simply check for
Ansi, Ascii, and Avatar.
Allow G and I
Whether or not the use of the G and I commands can be used from
the message reading menu. These commands store message replies
and threads, and in low memory situations can lock up the BBS if
used. If you experience lockups due to the use of G and I
commands, set this to No. In multitasking environments, it would
be best to set this option to No regardless.
Hang Up After Calls
If Yes, the BBS will drop carrier when the user logs off or is
disconnected. If No, the BBS will not drop carrier until it
cycles back to the WFC screen or until some other program (like a
frontend mailer) toggles the modem DTR.
MAINTAIN.BAT Door File
If this option is set to Yes, the BBS will generate a DORINFO1.DEF
dropfile before MAINTAIN.BAT is run on files.
3.3: System Information 3
Swap to EMS
If set to Yes, the BBS will swap to EMS memory instead of to disk
or XMS memory.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 20
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
Swap to XMS
If set to Yes, the BBS will swap to XMS memory instead of to disk
or EMS memory.
Open/Close FDF
If this option is set to Yes, the BBS will open and close the File
Description File while doing file listings. This option is a
little slower, but may prevent problems in a multitasking
environment. If the system is an active multinode system, this
should be set to Yes.
Give up Time Slices
Whether or not Oblivion/2 should give up Time Slices in a
multitasking environment. This should be set to Yes if
multitasking.
Inform Nodes
Whether or not the BBS should alert online users to another user
logging on the BBS on another node.
Use Xfer Line
The field may contain a number between 1 and 25. This is the line
on which the message text "User is uploading/downloading" will
appear on the local monitor. This is more cosmetic than anything
else.
Use Chat Log
Whether or not you wish to log all sysop to user chats. If set to
Yes, the chat log is opened automatically upon entering sysop to
user chat mode.
Rename Files
Whether or not the BBS should use the DOS RENAME command when
moving files from one directory to another.
Use COPY
Whether or not the BBS should use the DOS COPY command when moving
files from one directory to another.
Multinode Friendly Ops
If this option is set to Yes, all transfers will be done through
the work directory (to insure that each node is accessing a
different directory). All files will be sent to the node's work
directory, and all files will be sent from that directory as well.
Please note that files will not be sent to the work directory for
bidirectional transfers.
No Device Check
Whether or not the BBS should use BIOS checks to see if the user
is accessing a device driver. Some methods of locking boards is
to get the board to access a device driver (ie. CON, etc.). The
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 21
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
BBS uses BIOS checks to see if certain filenames correspond to a
device driver name. However, this BIOS checking may lock up some
OS/2 setups. This option should be set to Yes ONLY if you have
experienced said lockups. If not, and by default, this option
should be left to No, meaning that the BBS will continue to do
it's BIOS device checks.
Inform on Logoff
Whether or not the system should inform online users that another
user on another node has logged off.
Auto Val New Users
Whether or not the system should automatically validated new users
during the application process. If set to Yes, they will be given
the default access level (defined in Val User/Nuv Config (Section
3.12)). If set to No, they will remain at level 1 and be
unvalidated pending manual sysop validation or NUV validation.
3.4: Look and Feel
Hidden Input Character
This is where you define the character that you want displayed
anytime a user has to enter hidden input (ie. passwords, etc.).
Most typically this character is ALT-254 (■) or a decimal (.).
Top Ten Bar Character
This is where you define the character that you want displayed
when the top ten listings are displayed. This character will make
up the segments of the bar showing certain values. Again, it is
typically ALT-254 (■).
Use Quote Header
If Yes, when someone is replying to a message and quotes part of
it, the text defined in the quote header/footer strings (absolute
prompt numbers 154 and 155) will be placed before and after the
quoted segment. If No, no headers or footers will be inserted
when a user is quoting.
Use Greater Than Sign
If Yes, when quoting, the BBS will place a Greater Than sign (>)
before the quoted text. If not, there will be no character placed
before the quoted text and it will be placed flush against the
left margin.
Use Prelogon
If Yes, the BBS will display PRELOGON.x ansis before the user is
prompted for his alias and password. These ansis should be in
your textfile directory.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 22
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
Use Welcome
If Yes, the BBS will display WELCOME.x ansis after the user has
entered in his alias and password. These ansis are found in your
textfile director.
External Message Help
If Yes, the BBS will display the file MESHELP.ANS in your textfile
directory as opposed to displaying the internal message help (seen
when the user presses ? at the message reading prompt).
External File Help
If Yes, the BBS will display the file FILEHELP.ANS in your
textfile directory as opposed to displaying the internal file help
(seen when the user presses ? at the file listing prompt). Both
FILEHELP.ANS and MESHELP.ANS can also be placed in status screen
libraries.
Yes/No Shown in App
If set to Yes, in the new user application process, a "(Y/n)" will
be shown at the end of your prompts for the questions asking "Use
ansi?" and "Use avatar?" and "Use yes/no bars?". If this is set
to No, the "(Y/n)" will not be shown. This is useful if you are
using ansis or animation in your new user login and you don't want
the display messed up by the BBS appending a "(Y/n)" at the end of
any strings.
3.5: Communication Information
The following are modem commands that Oblivion/2 will recognize:
| Enter
~ Pause
, Pause
+++ Used to put modem in command mode
COM Port
This is the COM port that the modem is sitting on. You may enter
in 0-4 where 0=local and 1-4=COM ports 1-4.
Man. Answer
If this option is set to Yes, Oblivion/2 will monitor the carrier
pin on your serial card. When this pin signals true (meaning the
phone is ringing), it will send the answer string. This method is
faster than waiting for the RING message to come from the modem.
However, this option does not work with all modems so you will
need to experiment to see if it works for you.
Init Str
This is the initialization string Oblivion/2 sends to the modem
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 23
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
when the software is loaded up at the WFC screen.
HangUp Str
This is the string used to hang up the phone (toggle DTR).
Off Hook Str
This is the string used to take the phone off the hook.
Send Car. Str
This string is sent when you want to send carrier. This is
typically used if a user is in his terminal program and you want
to switch from a voice call to a data call. The user will receive
carrier (usually ATX1D) and you will send it (usually ATA).
Rec Car. Str
This string is the opposite of the one above, as it will receive
carrier, but the same principles apply. This string is usually
ATX1D.
Default Baud
The baudrate that your COM port is locked at. You may select any
value from 110 through 57600.
Min. Baud
This is the minimum baudrate a user must connect at to access the
board. Below this baudrate, the caller will be asked for the Baud
Lockout Password (if defined) or hung up on if not defined. It
can be anything from 110 to 38400.
Lock Out Pass
This is the Baud Lockout Password. If the minimum allowable
baudrate is 9600 and a user calls in at 2400, they will have to
know this password to gain access to the system. If this password
is not defined, the BBS simply hangs up on slow callers.
115.2k Locking
If you want to lock (or have locked with a fossil driver like X00)
your comport at 115200, set this to Yes. It will override the
Default Baud setting (above). Sysops with 28.8k modems or higher
may want to set this option to Yes to get the maximum performance
from their modems.
Wait Until Sent
If this is set to Yes, the BBS will pause until the output buffer
is empty after a file transfer before continuing. This may help
to prevent some problems with higher speed modems (28.8k).
Base Address
This is where you define the base address of the COM port to be
used as a protocol parameter. This field should only be filled in
if you are using a nonstandard comport.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 24
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
IRQ Number
This is where you define the IRQ number (from 0 to 15) of the COM
port to be used as a protocol parameter. This field should only
be set to other than 0 if you are using a nonstandard comport.
3.6: Filename Configuration
BBS Directory
This is the directory where you store the BBS executables.
Text Directory
This is the directory where you store the message text files (the
files that store the actual text for all the message areas).
Board Directory
This is the directory where the files defining the message bases
are stored.
File Directory
This is the directory where the files defining the file bases and
storing file information (size, descriptions, etc.) are stored.
Data Directory
This is where Oblivion/2 stores it's data files.
Menu Directory
This is where the menu files (*.MNU) that are the underlying
structure of the BBS are stored.
Work Directory
This is the temporary directory that the BBS uses to store message
captures, creates QWK packets, etc. Note that under multinode
operations, subdirectories are created. Ie, if this field was
C:\OBV\WORK and the system was run multinode, node 1's work
directory would be C:\OBV\WORK\1, node 2 would be C:\OBV\WORK\2,
and so forth.
TextFile Directory
This is the directory where all of the BBS textfiles (ansis,
asciis, RIP, etc.) are stored.
File Mail Directory
When a user sends filemail (file attaches to email) to another
user, the files are stored in this directory.
Log Directory
This is where Oblivion/2 writes all of it's logs.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 25
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
Door Directory
This is where the door executables (batch files) should be stored.
However, under multinode operations, subdirectories are created
for each node in the same manner as the work directory (\1, \2,
etc.). The batch files for each node should be in their own
directory, as depending on which node the user is on will reflect
which directory Oblivion/2 looks for for the batch files. Please
see OBV.FAQ for more information on setting up Doors with
Oblivion/2.
Swap Directory
This is the directory Oblivion/2 uses for it's memory swapping.
Under multinode operations, subdirectories are created in the same
manner as with the work and doors directories.
Bad Directory
This is where the BBS will place all files that have failed the
upload checker.
MultiNode Directory
This is where the BBS stores all of it's multinode files (only
used under multinode operations).
Prompts Directory
This is where the textfiles (ansis) that are displayed in prompts
(See Section 11 for more information on this) are stored.
DSZ Log
This is the name of the DSZ logfile. Put in the full path and
name of the file without the three character extension (ie.
C:\OBV\DSZLOG.). The BBS will append the node number as the
extension to the file (node 1=DSZLOG.1, node 2=DSZLOG.2, etc.).
Be sure that you SET the DSZLOG environment variable for each node
to correspond to the filename defined here. See Section 1.4.2 for
more information.
3.7: ACS Configuration / ACS Configuration 2
In the two ACS Configuration menus, all ACS commands (see Section 2)
are applicable and may be used here.
Post Anon ACS
ACS required to post anonymous in any message base.
Sysop ACS
ACS required to be a full sysop. When you have this ACS you will
be able to access all sysop commands (unless otherwise changed by
menu editing).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 26
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
Mes. Sysop ACS
ACS required to have access to the message sponsor commands.
Again, this can be overridden by menu editing.
File Sysop ACS
ACS required to have access to the file sponsor commands.
Exec in MiniDos
ACS required to use the *COMMAND or &COMMAND commands in the
MiniDos. *COMMAND will execute COMMAND after performing a DOS
shell. This can be used to run PKZIP or other files from the
MiniDos. &COMMAND will execute COMMAND without performing a DOS
shell. This can be used to run commands that are internal to
COMMAND.COM (ie. DEL, ERASE, COPY, etc.). To run DEL without a
DOS shell you would issue &DEL, to run PKZIP in a DOS shell, you
would issue *PKZIP.
Post Mandatory
ACS required to post a message in a mandatory (generally news/
announcements) base.
//\\ Usage ACS
ACS required to use the //\\COMMAND codes. This should be set to
sysop only as this is a powerful command. It can be accessed at
any menu with a prompt, regardless of where you are, and it can
process any menu command. For example, typing //\\*T at a menu
prompt would be the same as accessing the menu command *T (Text
Editor) from the sysop menu. If it is a valid menu command, the
user will be able to access it if he meets the ACS requirement.
FileMail ACS
ACS required to send filemail (file attachments to email).
Reply Receipt ACS
ACS required to request a receipt to email. If a user meets this
ACS requirement and selects Yes to receive the receipt, he will be
notified in the system notices when the user to whom the email is
addressed reads the email.
Top Ten Exempt ACS
ACS required to be exempt (excluded) from the Top Ten listings.
Ask Availability ACS
ACS required to be asked about MultiNode chat availability. A
user that meets this ACS requirement will be able to choose
whether or not he is "available" for multinode chat.
//\\xx Usage ACS
ACS required to use specific //\\xx commands where xx is of type
-? (control), &? (multinode), {? (matrix), !? (global newscan), [?
(main menu), .? (door), *? (sysop), ^? (new user voting), C?
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 27
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
(conference editor), D? (data area), E? (email), F? (file), J?
(join conference), M? (message), Q? (qwkmail), R? (top ten), S?
(message sponsor), T? (file sponsor) or V? (voting). These may be
set at different ACS settings for different users (ie. allowing
file sysops access to //\\T? but not anything else).
Hidden Files ACS
ACS required to see hidden files in the MiniDos.
Change Directory ACS
ACS required to change directories in the MiniDos.
3.8: File Section
K for each point
This is used to establish a file point ratio. This field tells
the BBS how many K each point is worth. It can be anything from
0-1000. For example, if this field was 10, each 10k would be
worth a file point (a 200k file would be worth 20 file points).
Ext. File Area List
If you wish to use an external file area ansi (either a straight
ansi or using the repeat method) select Yes. If this option is
No, the BBS will use an internal listing method.
Repeat Method
If your external area listing is using the Repeat Method, select
Yes. Please refer to Section 27 for instructions on how to
create Repeat Method ansis.
Use FP Commission
If this option is set to Yes, a file point commission system is
enabled. What this does is give the uploader a percentage back of
the file's file point worth when someone downloads his file. This
encourages good uploads, because if someone uploads a good file
that 20 people download, he gets X times 20 amount of file points
credited to his account for merely having uploaded a good file.
If no one downloads the file, the uploader gets no extra credits.
Percent Commission
Percentage of the total file points the uploader will receive
again when someone downloads his file. For example, if a 100k
file was worth 10 file points, and the percent commission was 50%,
the uploader would receive 5 file points credited to their
account. Valid ranges are 1 through 1000.
Times Point Back
The amount of file points the uploader receives for uploading a
file. If each 10k of a file was worth 1 file point and the
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 28
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
uploader sent a 100k file, the file would be worth 10 file points.
If this field was set to 2 (meaning double the points back), the
uploader would receive 20 file points for uploading a file worth
10 file points. Valid ranges are 0 through 10.
Desc Form 1-8
This feature allows you to append any miscellaneous information to
file descriptions through the use of certain MCI codes. See
Section 28.4 for a listing of the MCI codes. You can define up to
8 lines of information to be appended to a description. Desc Form
1 will be the line following the last line of the description
(whether entered manually by the user or imported from a
FILE_ID.DIZ).
Lines of Ext. Desc
This tells the BBS how many lines of extended description is
permitted for the user to enter. This option has no bearing on
FILE_ID.DIZ description imports as the BBS will import as many
lines as are in the actual DIZ file. Valid ranges are 1-7.
Percent Time Back
This tells the BBS how much time to give back to the user after an
upload (in a percentage). If this was set to 100 (100%) the user
would get the same amount of time it took to upload a file,
credited to their account. Valid ranges are 1-500.
Autovalidate Files
If set to Yes, all uploads will be automatically validated and
will be available for immediate download. If set to No, all files
will be flagged with a NEW status and must be manually validated.
Min. K For Upload
The minimum free space (in K) to allow uploads to the system. If
the amount of free space on your hard drive is equal to, or less
than, this amount, uploads will be refused. Valid ranges are
1-20000. Remember that this is in K, so a value of 200 would mean
at 200k or less free space, uploads will be refused.
Use Average CPS
If set to Yes, time estimates for transfers will be made on the
Average CPS rate of the user (based on previous transfers, and
stored in the user's account). If set to No, time estimates will
be made based on the connected baudrate.
Extract Percentage
When a user extracts a file, he is charged the file size
multiplied by the percentage in this field (in file points or file
size, depending on which is used). For example, if a user
extracted a 100k file, and this field was set at 60 (60%), the
user would be charged 60k for the extraction. If file points are
used, the extraction percentage is multiplied by 1 divided by the
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 29
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
total number of file points (at a value of 60% this would be
60x(1/10) if the file was 100k and each 10k was 1 file point). To
be clearer:
Charge in K for a value of 60% on a 100k file:
(Extract % (as a decimal of 100%))x(file size)
0.6x100 = 60 or 60k charged
Charge in FPs for a value of 60% on a 100k file where 10k=1 FP:
(Extract % (as whole number))x(1/file's FP value)
60x(1/10) or 60x0.1 = 6 or 6 file points charged
Valid range is from 1-2000 (1% to 2000%).
3.9: Email Information
Allow File Mail
If set to Yes, filemail is permitted on the system, however the
ACS restrictions still apply (see Section 3.7).
Days to keep File Mail
The amount of days file mail is allowed to remain on the system
before it is auto-purged. If a user hasn't picked up his filemail
in this time, the filemail is deleted. Valid ranges are 1-10.
3.10: Message Section
External Base Listing
If you wish to use an external message area listing (either a
straight ansi or using the repeat method), select Yes. If you
select No, Oblivion/2's default internal listing method will be
used instead.
Use Repeat Method
If your external message area listing ansis are using the Repeat
Method, select Yes. Please refer to Section 27 for instructions
on how to create Repeat Method ansis.
QWKMail Time Left Check
If this option is set to Yes, the BBS will check to see if the
user will have enough time to download their QWK packet (it takes
the size of the QWK packet and the speed of the connection to
determine if enough time is left). If the user does not have
enough time, the BBS will not allow them to download the QWK
packet. If this option is set to No, the BBS will allow them to
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 30
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
download their QWK packet regardless of how much time the user has
left.
3.11: Color Configuration
This is where you can define your BBS's system colors. There are
six different main colors that are used for various different parts
of the BBS. These are Regular, Prompt, Input, Inverse, Status, and
Box. You may have to play with the color configuration a bit to get
it to a system that you like. These are the DEFAULT colors given to
users. However, if you allow them to, they can change these colors
for their own account to be different so that the BBS will display
different colors to them and only them.
3.12: Val User/NUV Configuration
Oblivion/2 has a unique way of handling user validation. Instead
of the traditional sysop validation or automatic validation,
Oblivion/2 allows the current USERS (or anyone else the sysop
defines) to vote on new applicants. This is much like a voting
booth, but instead of voting on questions, the users can vote on new
users. This can take some of the stress of new applicants to the
system off of the sysop. Of course, the sysop may choose not to use
NUV (New User Voting) and validate users himself, use automatic
validation, or give access to NUV to certain users or co-sysops. As
with all other aspects of Oblivion/2, this is totally configurable.
Default Flags
These are the default user ACS flags that are given to new users
upon validation (either automatic, manual, or through the NUV
process). These flags are of the FIRST user ACS flag set.
Default Level
This is the default security level given to new users upon
validation. It can be in the range of 1 through 255.
Default File Level
This is the default file level given to new users upon validation.
It can be in the range of 1 through 255.
Default File Points
This is the number of file points given to new users upon
validation. It can be in the range of 1 through 32767.
Default U/D Ratio
This is the default upload/download ratio given to new users upon
validation. It can be in the range of 1 through 200. This value
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 31
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
is how many files they can download for 1 upload. For example, a
value of 10 would make a 1:10 U/D ratio (10 downloads for one
upload).
Default U/D K Ratio
This is the default upload/download kbyte ratio given to new users
upon validation. It can be in the range of 1 through 200. This
value is how many kbytes they can download for 1k uploaded. A
value of 10 would make a 1:10 U/Dk ratio (10k download for 1k
upload).
D/L K Per Day
This is the default amount of kbytes a user can download in one
day. It can be in the range of 0 through 32767 (0k through 32.767
megs).
Default PCR
This is the default Post/Call Ratio a user is given upon
validation. For a PCR of 50%, a user must post 1 message every 2
calls. The formula for PCR calculation is:
(PCR (in decimal form))x(amount of calls)=(posts needed)
For example, a PCR of 25% and 12 calls would give:
.25x12 = 3 or 3 messages to post
This would mean that a user who called 12 times, with a PCR of
25% would have to post 3 messages to meet his Post/Call Ratio.
This is a good way of restricting access to doors or files if the
user does not post any messages. Use it in conjunction with the *
ACS code. This can be in the range of 0 through 500, where 0 will
disable the PCR.
Default U/L CPS
This is the default upload CPS rate given to new users upon
validation. If you use the average CPS rate in the user's
account, this is a good setting to set. If you don't use it, it
doesn't matter. See Section 3.8 for more information on average
user CPS. This can be in the range of 0 through 3000, but should
be set at 1000 or 1440.
Default D/L CPS
Same as above, except for download CPS rate. Again, this can be
in the range of 0 through 3000, but should be set at 1000 or 1440.
Default Time Limit
This is the default amount of time given to new users upon
validation. This defines the amount of time they have on the
board per day. This can be in the range of 0 through 1440.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 32
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
NUV Votes to Validate
This is the amount of new user votes needed for a user to be
validated. If a user gets this number of Yes votes when in the
New User Voting process, he will be validated (and granted the
defaults defined above). This can be in the range of 0 through
255.
NUV Votes to Delete
This is the amount of new user votes needed for a user to be
deleted. If a user gets this number of No votes when under NUV,
he will be deleted and placed in the systems Blacklist (or deny
list). This can be in the range of 0 through 255.
Default User Note
All users on Oblivion/2 systems can define (or the sysop can
define for them) a user note. This typically states any group
affiliations or area codes. This is the default user note given
to new users upon validation.
Daily Flag Change
This defines any flag changes made to a user's account on their
first call of the day. The format for this command is
-FLAGS+FLAGS. Please note that this only works with the FIRST set
of user ACS flags. For example, a field of -ABC+XYZ would turn
off flags A, B, and C and turn on flags X, Y, and Z.
Call Flag Change
This defines any flag changes made to a user's account each time
they call the board. The format for this command is -FLAGS+FLAGS.
Again, this will only work with the FIRST set of user ACS flags.
Days to Add on Del
This defines the number of days a new user who was denied in the
New User Voting process will be kept in the blacklist. This
basically defines the number of days a user will not be able to
apply again using the same handle they originally applied with.
After this number of days, the user will be able to apply to the
system again. This can be in the range of 0 through 3650.
3.13: Infoforms
Infoforms are a simple way of keeping information on a user on
record. They can be used to ask different questions (like where
they got the number, user references, if they run a BBS, etc.) and
will be stored along with their user account for the sysop to view
at any time.
Making infoforms is very simple. You can have either ansi or ascii
infoforms. They are both fairly simple to make, however with ansi
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 33
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
infoforms it takes a little more time. With ansi infoforms, you can
also have elaborate animation to make it look nice.
The following commands are universal for ansi and ascii infoforms.
Oblivion/2 will process them, and depending on which code you use,
act accordingly.
* Waits for a response. This is abortable (meaning the
user can simply press enter and move on to the next
question without having to enter anything in the
particular field).
|xx Limits user input to xx spaces. This also is abortable.
@ Waits for a response. This is not abortable. If the
user tries to press enter without entering a response,
Oblivion/2 will repeat the question (will not move on to
the next question).
%xx Limits user input to xx spaces. This also is
unabortable.
To make an ascii infoform, simply use your favourite text editor and
write up the infoforms (the questions). Then insert any of the
above codes anywhere in the text. Because of the limitations of
ascii infoforms, the codes (above) MUST be at the end of any given
line, because if there is text AFTER the code, Oblivion/2 will move
the text over and you'll get a messed up display.
To make an ansi infoform, you can do the same thing as above (with
the ascii infoforms) with the same restrictions. However, the ansi
color codes will be displayed and interpreted. To make a more
elaborate ansi infoform, with perhaps two columns or other animation
you must use an ansi editor like TheDraw with animation
capabilities. Draw the infoform template first, and then turn on
animation (in TheDraw you would use ALT-J and select the animation
scanning method you want to use). After TheDraw has redrawn the
screen so that it is animate ready, insert the above interpreter
codes where you want the user input. You may have to play with it
for a while before the infoform you want is read the way you want it
read, but generally speaking, this is the process in which you would
do it.
In this part of the configuration, you have space for 5 infoforms.
Once you have drawn up your ascii or ansi infoforms, name them
INFOFORM.1 through INFOFORM.5 and place them in your textfile
directory. INFOFORM.5 is reserved for the New User Voting infoform
(this is the infoform displayed to users voting on new users), so
make sure you number the infoforms accordingly.
You can also make certain infoforms mandatory in this section of the
config. Turn Mandatory on for those infoforms you want users to
fill out before they are able to finish the new user application.
These infoforms will be displayed automatically and must be filled
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 34
Section 3 CONFIGURATION
────────────────────────────────────────────────────────────────────
out by new users before they are permitted to continue. You can
also give the infoforms names that will be displayed to new users
(ie. INFOFORM.5 would be mandatory and perhaps called New User
Voting - Shown to all users!).
After your system has been up for a while, you may wish to change
your infoforms. Since Oblivion/2 only keeps a copy of the input in
the infoform storage file, if you change an infoform, it will read
in the new infoform for the background and place in the user's text
from the old infoform on top of it (giving very strange and awkward
results). To prevent this, you can use the Clear Infoforms command
in the sysop menu and clear that particular infoform (as in erase
all of the infoform answers for that particular infoform for all
users and reset it to unanswered). If the infoform is mandatory,
all of your users will be required to fill in the new infoform on
their next login, and when you go to view infoforms, you will see
the new answers on the new infoform ansi/ascii background.
In this part of the configuration, you are only permitted to use 5
infoforms. However, if you feel that you need more infoforms, you
can use different menu commands to access different infoforms.
These infoforms can be shown to users with a specific access level
and be restricted to other users. These other infoforms can either
be written to the main infoform storage file (INFOFORM.) or they can
be written to a text file and placed into a directory of your
choosing. Please refer to Section 22.5.1 for more information on
other infoform storage methods and commands.
3.14: WFC Options
With Oblivion/2, you can define more Waiting For Caller Options than
those that are built in (ie. local logon, launch menu, send carrier,
config, etc.). These extra options are all defined by batch menus
and are very easy to setup. All you need is a batch file.
Use WFC Batch Opts
If Yes, a single screen will appear displaying the Batch Options
you have defined here, that you can access using the F1 (more)
key. If No, the use of WFC Batch Options will be disabled.
Option x Tag
This defines the name for the particular option (ie. Pack
Echomail). x is the number of the Batch Option (1-9) while option
10 is reserved for the More key.
Option x Batch
This defines the batchfile corresponding to the Tag. The
batchfiles must be in your main Oblivion/2 directory. If the Tag
was Pack Echomail, the batchfile might be called PACK.BAT.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 35
Section 4 OBLIVION/2 EXTERNAL UTILITIES
────────────────────────────────────────────────────────────────────
Section 4: OBLIVION/2 EXTERNAL UTILITIES
There are a number of external utilities you can use with
Oblivion/2. These include managing your menusets, status screen
sets, and translating ansis, just to name a few. You will find some
of these utilities invaluable as you create your new BBS.
4.1: MenuCode
Oblivion/2 allows for multiple menusets and status screen sets.
However, before these multiple sets of ansis can be available to
your users, you must compile them into a library. MENUCODE.EXE will
compile your menuset ansis into a file library that Oblivion/2 can
read. The commandline for MenuCode is:
MENUCODE.EXE <LIB name> <target dir>
Where LIB name is the name of the library file to create (ie.
MENU1.LIB) and target dir is the directory where the uncompiled menu
ansis are stored. Oblivion/2 will compile all of the ansis in the
target directory and place the finished library file (MENU1.LIB) and
index file (MENU1.NDX) into your data directory.
If a menu screen that is defined in one of your menus does not exist
in the target directory, Oblivion/2 will inform you that the menu
ansi is missing, but will not stop compiling the library. Any files
in the target directory that are NOT valid menu ansis (as defined in
the menu (.MNU) files themselves) will not be compiled.
The ansis that Oblivion/2 will be looking for are defined in the
menu files by the HELP ID field in the menu editor. The HELP ID
field will take a filename (8 characters max, no extension) which
will be displayed to users when they press the ? at a prompt.
Promptless menus, pulldown menus, or other menus that you do not
wish placed into the compiled menu library should have the HELP ID
field left blank.
After you have compiled your menu library, and the .LIB file and
.NDX file are in your data directory, log into your BBS. Go into
the sysop menu and press "N". This will allow you to edit either
status screen or menu libraries. The menu command is *S and the
"N" command is part of the default sysop menu. Next press "M" to
edit the menu libraries.
Option "A" will allow you to add a menuset for your users to choose
from. It will prompt you for a name to display to the users (ie.
Menu Set #1) and the filename of the library (8 characters max, no
extension). If you do not wish to use menuset libraries, you may
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 36
Section 4 OBLIVION/2 EXTERNAL UTILITIES
────────────────────────────────────────────────────────────────────
enter in the Oblivion/2 textfile directory as the filename, and the
BBS will look for the menu ansis there. You may also define
different directories for different menusets and point the BBS to
those menusets. However, using the compiled libraries is more
efficient. For example:
Using the compiled library:
Menu Name : Menu Set #1
Library File: MENU1
Using the textfile directory:
Menu Name : Menu Set #1
Library File: C:\OBV\TEXTFILE\
If you use the textfile or multiple directories method, no LIB/NDX
files are created and the BBS will only look in the specified
directories for the different menusets.
4.2: StatCode
As with MenuCode, you may define multiple status screen sets for
your users to choose from. StatCode uses the same commandline as
MenuCode:
STATCODE.EXE <LIB name> <target dir>
StatCode produces the same results as MenuCode. The target
directory is where you have placed all of the status screen ansis to
be compiled, and LIB name is the filename of the library file (8
characters max, no extension). It will create the appropriate
LIB/NDX files in your data directory.
StatCode is programmed to look for the following specific files:
NEWSHEAD.ANS The News Header
EMAILHDR.ANS The Email Header
HDR.ANS The Header
HEADER.ANS The Message Header
* ZIPHEAD.ANS Internal ZIP Viewer Header
FSEHEAD.ANS The FullScreen Editor Header
BCHANGE.ANS The Base Change Header
* SUBSRT.ANS Sub Listing Start
* SUBSMID.ANS Sub Listing Repeat
* SUBSEND.ANS Sub Listing End
* AREASRT.ANS File Area Listing Start
* AREAMID.ANS File Area Listing Repeat
* AREAEND.ANS File Area Listing End
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 37
Section 4 OBLIVION/2 EXTERNAL UTILITIES
────────────────────────────────────────────────────────────────────
* USERSRT.ANS User Listing Start
* USERMID.ANS User Listing Repeat
* USEREND.ANS User Listing End
STATUS.ANS Login Status Screen
USERSTAT.ANS User's Statistics Screen
FILESTAT.ANS User's File Statistics Screen
FCONFIGS.ANS File Listing Configuration Screen
CONFSCR.ANS User Configuration Screen
QWKDN.ANS QWK Downloading/Packet Creation Screen
QWKUP.ANS QWK REP Uploading/Posting Screen
The ansis with an asterix before them are optional screens. The
other screens are optional as well, however they should be created
as they are needed for the proper operation of the BBS. Not all of
the above "mandatory" ansis need to be compiled in the status screen
libraries, they may be left in the textfile directory and will be
used despite which status screen set the user has selected. If
Oblivion/2 cannot find an ansi that it needs in the user's current
status screen set, it will look for it in the textfile directory.
If you wish to code additional screens into the status screen
library that are not included in the default list above, you must
create a .LST file in the main BBS directory. For example, if your
statscreen set was STAT1, you would have to create a textfile called
STAT1.LST in your main directory. This file contains the filenames
of the ansis you want to be additionally coded into the status
screen libraries (one filename per line, include the file
extension).
If you wish to compile your data area ansis (see Section 16 for
more information on the data areas) you must simply toggle the
Library Data Ansis option to Yes in System Information 2. Then
place all the appropriate data area ansis into the same target
directory as the rest of your status screens and StatCode will
compile them as well. Remember, that if an ansi is not found in the
status screen library, Oblivion/2 will look for it in the textfile
directory. This goes for the data area ansis as well.
If you use the above optional SUBxxx.ANS and AREAxxx.ANS files, you
must turn their usage on in the Configuration (in the File Section
and Message Section parts of the Configuration). They are Repeat
Method ansis, so that option must be turned on as well.
After you have finished compiling your status screen libraries and
StatCode has created the LIB/NDX files in your data directory, log
into the BBS and goto the sysop menu. Use the *S (option "N" in the
default sysop menu) command and select "S" for status screen
libraries. Using the same process as adding menusets (see Section
4.1 above), you can define status screen libraries or directories in
the same manner as MenuCode.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 38
Section 4 OBLIVION/2 EXTERNAL UTILITIES
────────────────────────────────────────────────────────────────────
4.3: UnPack
This utility will unpack your library files (either menu or status)
into the directory of your choice. When you compile a library and
later want to make changes to a particular screen, you will need to
unpack the library, change the screen, then re-code it using
MenuCode or StatCode. The commandline for UnPack is:
UNPACK.EXE <LIB name> <target directory>
Where LIB name is the name of the library file you want to unpack
and target directory is the directory where you want to place the
ansis.
4.4: MakeProm
This utility should be run only once, and that's when you upgrade to
a new version of Oblivion/2. MakeProm will add and re-arrange your
PROMPTS.DAT file so that any new strings that were made configurable
since the last release will be available to you. MakeProm
eliminates the need for textfile string files or string file
compilers. Simply execute MakeProm after any upgrade (make sure you
use the copy of MakeProm included in the upgrade archive) and then
delete it. If you run MakeProm more than once on any given version,
you risk corrupting your PROMPTS.DAT file.
4.5: MakeHelp
This utility should be run only once, and like MakeProm, it should
be run when you upgrade to a new version of Oblivion/2. What it
does is update the help file for the Configuration system. When new
options are added to the Configuration, or obsolete options are
removed, the help system must be changed accordingly. The help
system is the brief description at the bottom of the screen in any
Configuration menu. It will give you a brief description of the
currently highlighted option. Once you have run this utility after
an upgrade, delete it.
4.6: EP
This utility will pack your email text file. When a user (or you)
deletes email, it is still kept in the text file that the email uses
to store all of the messages. The email must be purged either by an
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 39
Section 4 OBLIVION/2 EXTERNAL UTILITIES
────────────────────────────────────────────────────────────────────
EZ menu command or by EP.EXE. EP is handy because you can use it in
your nightly maintenance to pack the email text storage file to keep
it small and fast.
4.7: IP
This utility will pack your infoform text file. When a user is
deleted from the system, their infoform is marked as deleted, but
must be purged from the text storage file. IP will do this. It
might not be a good idea to run IP as a nightly event as it may
cause unneeded stress on the storage file, but you should run it
once a month or after you delete users to keep the infoform text
storage file small.
4.8: AnsiTran
This utility is sometimes needed due to the limitations of some ansi
editors and Oblivion/2's internal ansi-reading interpreter. What
AnsiTran does is take the input ansi and translate any codes that
might confuse Oblivion/2 into codes that Oblivion/2 understands.
Oblivion/2's internal ansi-reading routines are different from
standard ansi codes to disallow ansi bombs and the like. The
commandline for AnsiTran is:
ANSITRAN.EXE <ansi name>
The ansi name is the name of the ansi you want to translate.
AnsiTran will make a backup file (*.UNT) in case the translation
actually makes the problem worse. In most cases you won't need to
use AnsiTran, but in some ansi animation screens you may have to.
If AnsiTran does not work for you, try hand-editing the ansi
yourself. There's no better way to make something correct than to
do it by hand.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 40
Section 5 OBLIVION/2 COMMANDLINE PARAMETERS
────────────────────────────────────────────────────────────────────
Section 5: OBLIVION/2 COMMANDLINE PARAMETERS
Oblivion/2 has a number of different commandline parameters that
make it easy to load from different batchfiles for different
purposes.
The commandline parameters for OBV.EXE are as follows:
-A Returns to DOS after carrier is lost (user hangs
up or is kicked off).
-B xxxxx Passes baudrate xxxxx to Oblivion/2.
-D Oblivion/2 doesn't check for work/swap
directories.
-E Forces Oblivion/2 to run an event.
-F Loads Oblivion/2 without fossil driver support.
-L Local login (logs in as sysop from the DOS
prompt).
-M xxxx xxxx is the time in minutes until the next
scheduled event that users should be kicked off
(ie. -M 120 and an event at 7:00pm would mean
that users would be disallowed access from
5:00pm until 7:00pm).
-N x Loads node x.
-T xxxx xxxx is the time in minutes after midnight
before which users should be kicked off (ie. -T
120 would mean that users would be
disallowed access until 2:00am).
-CK Loads the new Chromatik WFC screen
-EMS Loads the overlay (OBV.OVR) into EMS memory.
-MENU Loads the menu editor from DOS.
-USER Loads the user editor from DOS.
-PROMPTS Loads the prompt (string) editor from DOS.
-CONFIG Loads the configuration system from DOS.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 41
Section 6 SYSOP ONLINE KEYS
────────────────────────────────────────────────────────────────────
Section 6: SYSOP ONLINE KEYS
Oblivion/2 has a number of keys that the sysop can use while users
are online. These keys can be used anywhere within the BBS.
F1 Bring user into Split-Screen Chat or if used
within chat, will exit chat.
F2 Brings user into Single-Line Chat or if used
within chat, will exit chat.
F3 Online User Editor.
F4 Open ScrollBack Buffer. In the buffer, you can
use the up and down arrows to scroll, or use
PgUp and PgDn. Esc exits the buffer.
F5 Generates a screen image. Will capture the
image on the screen and write it to an ansi file
called OBV.IMG. If OBV.IMG already exists, it
will append the new capture to the end of the
existing file.
F6 Toggles the Chat log on and off (used only in
Split-Screen or Single-Line chat modes).
F9 Modem Input Lockout (locks out incoming data
from the modem).
F10 Modem Output Lockout (prevents BBS output from
going through the modem).
ALT-A Toggles Chat availability.
ALT-B Toggles the Status Bar and flips through the
different displays.
ALT-H Displays listing of all online sysop keys to the
sysop.
ALT-J Shells the sysop to DOS.
ALT-M Gives user access to all of the message bases.
ALT-N Nukes user (drops carrier on them).
ALT-O Toggles Input Timeout (activate/deactivate
Config setting).
ALT-Q Displays KICK-OFF.ANS in the textfile directory
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 42
Section 6 SYSOP ONLINE KEYS
────────────────────────────────────────────────────────────────────
and drops carrier on the user.
ALT-T Gives user temporary sysop access.
ALT-V Validates user
ALT-X Gives user access to all of the file bases.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 43
Section 7 EVENT EDITOR
────────────────────────────────────────────────────────────────────
Section 7: EVENT EDITOR
One of the more powerful features of Oblivion/2 is it's internal
event editor. With the event editor you can perform any type of
maintenance you like, whether it's toggling sysop chat availability
or running external utilities.
Event Number:1
[T] Event Type :User ACS
[A] ACS :s32766
[F] File :ZONEHOUR.ANS
[S] Starting Time :02:00 am
[E] Ending Time :03:00 am
[N] Node Number :0
[K] Limit Time :On
[D] Delete
[I] Insert
[[] Previous
[]] Next
[Q] Quit
Command:
Option T defines the event type. There are four basic types of
events:
Errorlevel The BBS exits with a certain errorlevel (useful
for batch maintenance commands).
Code Executes one or more menu commands with full
CString support.
Availability Toggles sysop availability on or off.
User ACS Restrict login to the BBS at certain times via
user access levels and ACS commands.
Option A defines the ACS required to log in at this time for
User ACS events. For Availability events, Option A defines
whether the sysop is available or unavailable.
Option C defines the Code (menu command) to be executed for Code
Execution events.
Option L defines the Errorlevel Oblivion/2 should exit with.
Only in Errorlevel events.
Option F defines the file to show users who do not have access
to the system at this time. Only in User ACS events.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 44
Section 7 EVENT EDITOR
────────────────────────────────────────────────────────────────────
Option S defines the starting time of the event. Use the format
hh:mm [am|pm]. For all events.
Option E defines the ending time of the event. Use the format
hh:mm [am|pm]. Only in User ACS events.
Option N defines the node number this event affects. Use Node 0
for an event to affect ALL nodes. For all events.
Option K defines whether or not to limit the time of the user.
If this event runs at 10:00pm and a user logs on at 9:45pm and
they have 45 minutes left for the day, it will limit their time
on to 15 minutes and restore the remaining 30 minutes after the
event has been run. For all events.
If you are using a frontend mailer such as FrontDoor or D'Bridge,
you won't have Oblivion/2 loaded all of the time and thus won't be
able to make use of all of the different ACS types unless you use
the -E commandline, as the BBS will often miss it's events. All
that is required is a simple "event on event" type system. If you
have defined an event at 2:00am to pack your file description file,
simply have your frontend mailer, at 2:01am, drop to it's batchfile
and run OBV.EXE -E and Oblivion/2 will process the 2:00am event.
However, the -E commandline will only work if it is used AFTER an
event is scheduled. If your event is at 2:00am and you have your
mailer drop to run OBV.EXE -E at 1:59am, it will not work.
7.1: Errorlevel Events
The BBS can exit at a certain time with a defined errorlevel which
will then drop into the batch file that loaded up Oblivion/2 and
process any IF ERRORLEVEL commands. The following errorlevels are
reserved for Oblivion/2 usage:
255 Normal exit (no errors)
In order to make your BBS respond correctly to your errorlevel, you
must have a correctly written batchfile. The following is a simple
example batchfile that can be used to load the BBS and exit with an
errorlevel of 100 (as defined in the event editor) to run Norton's
SpeedDisk:
@echo off
:begin
OBV.EXE
if errorlevel 255 goto exit
if errorlevel 100 goto speeddisk
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 45
Section 7 EVENT EDITOR
────────────────────────────────────────────────────────────────────
goto begin
:speeddisk
cd\norton
SPEEDDISK.EXE /BATCH C:
cd\obv
goto begin
:exit
exit
What happens in the above batchfile is when the time for the event
rolls around, it exists with an errorlevel of 100. By using the
clause "IF ERRORLEVEL 100 GOTO SPEEDDISK" the batchfile will go to
the title ":SPEEDDISK" and process the commands in that segment of
the batchfile. It will run Norton's SpeedDisk and then return to
the ":BEGIN" clause, which re-loads Oblivion/2. Basic batchfile
programming knowledge is needed to write a proper batchfile to
interface properly with Oblivion/2.
7.2: Code Execution Events
Code events are possibly one of the most useful type of events.
With it, you can do any maintenance you wish, from purging email to
packing the file description file. Simply select the Code event
type, enter in the Command Key as EZ (to pack email), give it a
time, and when the time comes, Oblivion/2 will process that event.
7.3: Sysop Availability Events
With the Sysop Availability Event, you can turn on and off your chat
paging availability status. Perhaps you wish to have a chat
"window" from 6pm to 10pm. You will need three availability events.
One to turn chat status on at 6pm, one to turn it off at 10pm, and
another to turn it off at 12:01am. The last event is needed because
at midnight, the chat status will be reset to it's default (on).
7.4: User ACS Events
This event type is a useful one to restrict logins to the BBS at
certain times. Perhaps your system is a popular one with constant
callers and your co-sysop is complaining that he cannot ever login
to do his job. Simply define a user ACS event that will allow him
entrance (either by using the sxxx ACS command (ie. s250 will allow
users with a security level of 250 and higher to access the BBS
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 46
Section 7 EVENT EDITOR
────────────────────────────────────────────────────────────────────
while those with a lower level will be kicked off) or by using the
Ux ACS command (ie. if his user number was 3, you could define it so
that the ACS was U3 which would give him and him alone access to the
system)). With the wide variety of ACS commands, you should be able
to define an ACS restriction that meets your needs, whatever they
might be.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 47
Section 8 USER EDITOR
────────────────────────────────────────────────────────────────────
Section 8: USER EDITOR
Oblivion/2's user editor is a powerful one. It is run by a batch
oriented system, much like everything else in Oblivion/2, and this
allows for a lot of flexibility. A few features of the user editor
include infoform extraction, user searching by defined criteria,
highlight selected user editing, and more.
When you first select the user editor command, you will be given an
"Edit Individual?" prompt. If you select Yes, you can type in the
name of the user editor, or use DOS style wildcards. If you wanted
to edit a user with the alias of Diabolous, but you can't remember
how to spell it, simply type in Dia* and it will try to match a user
name to the wildcard, and then prompt you if it is the correct user.
Select Yes to edit the user it found, or No to continue the search.
If you simply type in * at the prompt, you will be prompted, one by
one from the first user to the last, whether or not you would like
to edit that individual. If, at the "Edit Individual" prompt you
select No, you will be given a list of users and can use your arrow
keys to scroll up and down the list via a highlight bar. It will
show you the first 23 users, and then once you reach the last user
and press the down arrow again, will clear the screen and display
the next 23 users. You can press Q to quit the process or ENTER to
edit the highlighted user.
When you enter the actual user editor, you will see something like
this:
╒══════════════════════════════════════════════════════════════════╕
│(H)andle : Lasher (L)evel : 32766 │
│(-)User Flags : BCHSVXZ (F)ile Level : 32766 │
│(R)eal Name : Vincent Danen (P)oints : 32698 │
│(()Phone : 4034744444 (T)ime Limit : 1440 │
│(N)User Note : SysGod ■ EViL.mOrtal ($)Time Left : 1300 │
│(A)ddress : yeah right =) (C)Calls : 365 │
│(=)Location : Edmonton, AB (U)ploads : 2 │
│(!)Uploaded K : 32 (D)ownloads : 3 │
│(@)Download K : 684 (#)U/D Ratio : 0 │
│(^)Posts : 1603 (%)U/D K Ratio: 0 │
│(|)Password : yeah right! (&)PCR : 0 │
│(W)anted : False (B)NetMail B : 10000 │
│(X)Expiration : N/A ( )Last Call : 01/11/96│
│(')D/L CPS : 2846 (J)New Level : 0 │
│(\)K Per Day : 0 (E)dit User │
│(/)User Flags2: (+)Validate User/Advance│
│First Call: 00/00/80 Birthdate: 01/01/01 (>)Edit Description │
│(S)User Search (I)nfoforms │
│(*)Extract Infoform (K)ill User ([,{,},])Prev/Next Reg/Search Link│
╘══════════════════════════════════════════════════════════════════╛
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 48
Section 8 USER EDITOR
────────────────────────────────────────────────────────────────────
The following keys edit certain fields in the current user's
account:
H User's handle.
- User's ACS flags that are active in the FIRST user ACS flag
set.
R User's real name.
( User's phone number.
N User's User Note
A User's street address.
= User's City/State.
! Amount (in k) that the user has uploaded.
@ Amount (in k) that the user has downloaded.
^ Amount of posts user has made.
| User's password
W Whether the user is wanted by the sysop or not. (See
Section 8.2).
X The date the user's current security level will expire.
(See Section 9).
' User's average download CPS rate.
\ The amount the user can download per day (in k).
/ User's ACS flags that are active in the SECOND user ACS
flag set.
L User's security level.
F User's file level.
P User's amount of file points.
T User's time limit per day.
$ User's time left today.
C User's total number of calls to the system.
U Amount (in number of files) that the user has uploaded.
D Amount (in number of files) that the user has downloaded.
# User's upload/download ratio.
% User's upload/download K ratio.
& User's Post/Call Ratio.
B User's amount of netmail credits. (See Section 8).
User's last call date.
J User's new level when current level expires.
The following keys call up general editing and viewing commands:
E Edit another user.
+ Advance the user to the next defined level (as defined in
the parameter editor).
> Edit the user's description. The description is where you
can store miscellaneous info on the user by typing it in
using the internal message editor.
I Display the user's infoforms.
* Extract infoforms to a text file or sends them to you if you
are remote.
K Deletes the current user.
[] Previous/Next user directly (ie. user 2 to user 3 and user 3
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 49
Section 8 USER EDITOR
────────────────────────────────────────────────────────────────────
to user 2).
{} Previous/Next user as defined by the search criteria (see
below).
S Searches for users by using the tabulated search method.
8.1: User Search Editor
The Oblivion/2 User Search Editor (accessed by option "S" in the
User Editor) is a powerful tool and can be used in many ways to
search for users meeting the same criteria. It has many uses and
has a variety of different criteria it can search for:
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Search Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (H) Handle String : [OFF] │
│ (A) ACS : [OFF] │
│ (L) Level : [OFF] - [OFF] │
│ (F) File Level : [OFF] - [OFF] │
│ (D) Days Since 1st : [OFF] - [OFF] │
│ (S) Days Since Last: [OFF] - [OFF] │
│ (E) Flag : [OFF] │
│ (N) Number of Calls: [OFF] - [OFF] │
│ (Y) Age : [OFF] - [OFF] │
│ (G) Gender : [OFF] │
│ (P) PCR : [OFF] - [OFF] │
│ (U) % U/D Ratio : [OFF] - [OFF] │
│ (K) % U/D K Ratio : [OFF] - [OFF] │
│ (X) Expiration Date: [OFF] - [OFF] │
│ (I) Infoform Str : [OFF] │
│ ($) Password Str : [OFF] │
│ (T) Tabulate Search │
╘══════════════════════════════════════════════════════════════════╛
H Searches for a particular handle string.
A Tries to meet input ACS (ie. if you entered X219 it would
look for all users with an area code of 219). All valid ACS
commands are allowed to be used here.
L Searches for security level in between the Low mark and the
High mark (ie. 0 - 50 would tabulate all users with a
security level between and including 0 through 50).
F Searches for file level in between the Low mark and the High
mark.
D Searches for amount of days since first call in between the
Low mark and the High mark.
S Searches for amount of days since last call made to the BBS
in between the Low mark and the High mark.
E Searches for users with the defined user ACS flags, but only
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 50
Section 8 USER EDITOR
────────────────────────────────────────────────────────────────────
from the FIRST set of user ACS flags.
N Searches for number of calls to the BBS in between the Low
mark and the High mark.
Y Searches for ages in between the Low mark and the High mark.
G Searches for defined gender.
P Searches for Post/Call Ratios in between the Low mark and
the High mark.
U Searches for upload/download ratio in between the Low mark
and the High mark.
K Searches for upload/download K ratio in between the Low mark
and the High mark.
X Searches for expiration dates (of accounts) in between the
Low mark and the High mark.
I Searches infoforms for a particular string.
$ Searches for a particular password string.
8.2: Wanted Users
A unique feature of Oblivion/2 is the "wanted" user feature. What
this feature does is allow the sysop to flag certain individuals as
wanted. This could be so that the sysop can be called to the
computer to see what the wanted user does, or it could be because
the sysop wishes to talk to the wanted user. The uses for this
function are endless.
What it does is when the system comes across a -_ menu command
(usually in the login process) it will page the sysop without
alerting the user. This page signal is the same as a normal page
when a user wants to chat with the sysop. When the sysop hears this
page, if he has a wanted user, he can check to see if it is indeed
the user he wants. If it is, he can then sit and watch the user or
break in for chat, whatever the sysop desires.
The wanted flag is toggled in the User Editor.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 51
Section 9 PARAMETER EDITOR
────────────────────────────────────────────────────────────────────
Section 9: PARAMETER EDITOR
Oblivion/2's Parameter Editor is an easy way for the sysop to
utilize different user levels. With this system, you can define a
number of different user levels to manage your users instead of
manually handling their account information on an individual basis.
To use the parameter editor, simply choose a user level. Perhaps
you want level 50 to be your default user level for all users. You
will need to decide what security level 50's Post/Call Ratio,
Upload/Download Ratio, Upload/Download K Ratio, time per day, as
well as how much they can download (in K) per day. Enter in the
values you want and you have your level 50 defined.
You may also wish to have temporary levels. For example, maybe you
run a pay system where users get access to certain echomail networks
or file areas for paying a certain fee per month. You can define a
number of days until expiration for a specific user security level
as well, and the BBS will automatically adjust the user's account
when their paid level (or whatever) subscription and they would be
once again reduced to level 50 (default un-registered user,
perhaps).
The nice thing about Oblivion/2 is how the parameter editor and the
user editor work hand in hand. Whatever security level is defined
by the parameter editor is by no means set in stone. Any value
defined in the parameter editor can be over-ridden in the user
editor. For Oblivion/2 to know that it must read a value from the
parameter editor and not the user editor, that value must be 0
(zero) in the user editor. This will tell Oblivion/2 that the value
is found in the parameter level for the user's defined security
level. If you want a specific user to have, say, more time per day
but don't want to give him a different security level, simply enter
in the amount of minutes per day you want him to have in the user
editor. Since the value is a non-zero value, Oblivion/2 will read
it from the user's account and not a value defined in the parameter
editor.
If you wish to use the parameter level right from the beginning for
new users, you must zero some field in the Val User/NUV
Configuration menu in the Configuration system. All of the default
values that you can define in the parameter editor should be (in the
Val/NUV Configuration) set to zero. Do not set fields like Upload
CPS or Download CPS to zero. If the fields in the default settings
(see the diagram below for all of the values the parameter editor
can define) are not zeroed, the parameter editor will not function
correctly.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 52
Section 9 PARAMETER EDITOR
────────────────────────────────────────────────────────────────────
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Parameter Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Level : 50 │
│ (B) PCR : 25% │
│ (C) Time Limit : 45 │
│ (D) U/D Ratio : 10% │
│ (E) U/D K Ratio : 10% │
│ (F) D/L K Per Day : 3000k │
│ (G) Days until Exp : 0 │
│ (H) Level upon Exp : 0 │
│ ([) Previous │
│ (]) Next │
│ (I) Insert │
│ (K) Kill │
│ (Z) Zero User Info │
╘══════════════════════════════════════════════════════════════════╛
A The security level that is being defined.
B The Post/Call Ratio for this level.
C The time limit for this level.
D The upload/download ratio for this level.
E The upload/download K ratio for this level.
F The amount (in kbytes) that users with this security level
can download per day.
G The amount (in days) that users with this level will be able
to retain this level before it expires.
H The security level a user at this security level will be
dropped (or raised) to when this level expires.
Z This will zero all of the options A-F for this particular
security level. (Ie. if defining security level 50 and you
Zeroed User Info, all users with a security level of 50
would have the defined options A-F zeroed in their user
account).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 53
Section 10 BLACKLIST
────────────────────────────────────────────────────────────────────
Section 10: BLACKLIST
With Oblivion/2, you can define something called a Blacklist. It
can also be known as a Delete List or Twit List. What it is is a
database of users that are not wanted on the system, for one reason
or another, for a particular length of time.
There are three types of deleted status. They are described as
follows:
Immediate The defined file is shown to the user, he is
disconnected, and then he is removed from the
blacklist and is able to apply again.
Expiration The defined file is shown to the user until the date
specified. After the date specified, the user will
be removed from the blacklist and he will be able to
apply again.
Never The defined file is shown to the user always. He
will always be in the blacklist and will never be
able to apply again.
Each level of deletion will display a file to the user. This file
can be different for each user (the default file is called
BLACKLST.ANS). These files are stored in the textfile directory.
You can also store a description on each deleted user in the same
way you can store descriptions of your users. These are simple text
descriptions you must enter in yourself using the internal message
editor.
The blacklist is a good way to keep unwanted users off of your BBS.
However, it is not fool-proof. If the offending user applies again
under a different alias, he will not be hung up on. If security is
important on your system, it would perhaps be best if you used the
description storage to your benefit by perhaps taking a screen
capture of the deleted user's personal information (press F5 in the
user editor) and locally uploading it into the description. Also
entering in information like real name and phone number, address,
etc. will help you if you suspect a blacklisted user trying to apply
with a different alias because his current one is in the blacklist.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 54
Section 11 PROMPT EDITOR
────────────────────────────────────────────────────────────────────
Section 11: PROMPT EDITOR
The prompt editor is an integral part of any configurable software,
and Oblivion/2 has one of the best. It is an online prompt editor
so there is no need for clumsy external applications to edit your
prompts. There are currently over 200 configurable prompts, each
with a length of approximately 255 characters.
There are a few commands in the prompt editor that you should be
aware of, as they will make your prompt editing that much easier.
Control Commands:
CTRL-V Toggles insert mode.
CTRL-U Pop-up ascii chart. Instead of having to remember the
high ascii characters or refer to your DOS manual, you
can use the ascii chart and select which character you
wanted printed at the cursor position of your prompt.
MCI Codes:
|Bx Moves backward x amount of columns (where x = 1-9).
|CR Carriage return.
|CS Clear screen.
|Dx Moves down x amount of lines (where x = 1-9).
|Fx Moves forward x amount of columns (where x = 1-9).
|OT-O2 Pipes OT and O2 are internal variables that Oblivion/2
uses for certain strings. If the example string
contains the pipe codes, be sure that your prompt
contains the same pipe codes as they present to the user
vital information.
|PA Pause.
|Ux This will translate to a color corresponding to the
user's six selected colors (where x = 1-6).
In the prompt editor, you will see two lines for each prompt. The
upper line is the "example" string, while the bottom line is the
what the prompt currently looks like.
All of the supported color codes can be used in your prompts as
well, whether they are the standard pipe (|) color codes or the
PCBoard (@X) color codes (see Section 28.5).
However great the 255 character limit for prompts is, it is
sometimes not enough. Sometimes you need to give more information,
or perhaps you want a full-screen ansi displayed where a 255
character prompt would not be enough. You can use another code to
direct Oblivion/2 to read an external textfile (stored in your
prompts directory) instead of reading a prompt. Place your textfile
in the prompts directory and for the prompt in question, simply
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 55
Section 11 PROMPT EDITOR
────────────────────────────────────────────────────────────────────
enter in %%FILENAME.EXT. In the textfile itself, you can use three
MCI codes. %OT and %O2 correspond to the prompt MCI codes |OT and
|O2. Place them in the textfile how you would place them in the
string. The third code is %IN, and it tells Oblivion/2 where to
place the cursor once the textfile has been read. If you draw an
ansi, the color that %IN is in (in the ansi itself) is the color the
user's input will be.
The informational pipe codes, OT and O2, should only be used if the
example prompt has them. If the example prompt does not contain
those two codes, or one of them, do not place them in your prompt/
textfile. If you do, it will not be translated to anything and you
will have a very silly looking prompt.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 56
Section 12 MENU PROMPT EDITOR
────────────────────────────────────────────────────────────────────
Section 12: MENU PROMPT EDITOR
With multiple menusets and status screen sets at your fingertips, it
is only logical that multiple menu prompts are a reality. You could
design your system so that the user picked one menuset and a
corresponding menu prompt and status screen set would be turned
active, to give the system more of a unified feeling in regards to
the way it looks.
The menu prompt editor is another powerful tool that allows you to
define more than one menu prompt. Menu prompts can look however you
want them to, from the simple:
Main Menu:
to the more extravagant:
[10:06pm EST]
Main Menu (?/Help) :
To make a menu prompt is a very simple process. You simply use the
internal FullScreen Editor to create it, or design the prompt
externally and use the FSE's import command. Menu prompts have the
potential to give little information or give a lot, and so the
following MCI codes are available for you to use when designing your
menu prompt:
|00-23 This will translate the color to the corresponding pipe
color code, where 00-15 are foreground colors and 16-23
are background colors.
|Bx Moves backward x columns (where x = 1-9).
|Dx Moves down x amount of lines (where x = 1-9).
|EC User's input color.
|Fx Moves forward x columns (where x = 1-9).
|FLxx Restricts input to xx characters.
* |MN Menu name (as defined in the menu editor).
* |NN Current node number.
|PC User's prompt color.
|RC User's regular color.
|SC User's status color.
* |TL User's time left.
* |TM Current time.
|Ux Moves up x amount of lines (where x = 1-9).
|VC User's inverse color.
|Xxx Moves to absolute xx value (ie. |X10 goes to 10th row).
|XC User's box color.
You may also use external textfiles for menu prompts. These files
must be stored in the textfile directory. As with the prompt editor,
%%FILENAME.EXT is the MCI code to use in the menu prompt editor.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 57
Section 12 MENU PROMPT EDITOR
────────────────────────────────────────────────────────────────────
The above MCI codes with an asterix (*) before them can also be used
in the external textfile, but must be a % code, not a | code.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 58
Section 13 PROTOCOL EDITOR
────────────────────────────────────────────────────────────────────
Section 13: PROTOCOL EDITOR
The protocol editor is where you can setup external protocols like
GSZ, HSLink. It is fairly easy to setup and easy to understand.
The hardest thing you will have is the configuration of the
protocols themself.
When you first enter the protocol editor, you'll see a menu like
this:
[1] Download Protocols
[2] Upload Protocols
[3] Batch Download Protocols
[4] Batch Upload Protocols
[5] Resume Protocols
[6] Bidirectional Protocols
Enter Protocols to Edit [1-6,Q] :
Option 1 is the download protocols. These are the protocols
used for single file downloads.
Option 2 is the upload protocols. These are the protocols
used for single file uploads.
Option 3 is the batch download protocols. As the name implies,
they are used for batch (more than one file) downloads.
Option 4 is the batch upload protocols.
Option 5 is the resume protocols. Not all protocols are
able to handle resuming files (if during a transfer, the
connection gets severed, the protocol does not delete the
file but will save it allowing the user to continue
uploading from where they left off instead of doing the
entire upload over again). A few examples are DSZ/GSZ and
HSLink.
Option 6 is the bidirectional protocols. These protocols allow
users to upload and download files simultaneously. A few
examples are HSLink and HydraCom.
Once you have selected the type of protocol you would like to edit,
you will be taken to the actual protocol editor.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 59
Section 13 PROTOCOL EDITOR
────────────────────────────────────────────────────────────────────
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Protocol Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Description : Zmodem (GSZ 06-07-95) │
│ (B) Key : Z │
│ (C) Program Name : GSZ.EXE │
│ (D) Command Line : %1 %2 est len %4 sz -s -m %3 │
│ (E) Erase the Current Protocol │
│ (I) Insert Protocols │
│ ([) Previous Protocol │
│ (]) Next Protocol │
╘══════════════════════════════════════════════════════════════════╛
Option A is the description of the protocol. Your users see
this description when they are about to upload or download.
Option B is the key that the user has to press to activate
this particular protocol.
Option C is the actual executable name (full name). The
executables will be looked for in your main Oblivion/2
directory. However, you can use the batch/redirection
method where you use a batchfile and call the protocol
executable from a different directory. For example, to use
the same commandline as above, but wanting to call
GSZDOWN.BAT you could use:
@echo off
C:\UT\GSZ.EXE %1 %2 %3 %4 %5 %6 %7 %8 %9
This also makes it easier for the people who want to perform
additional maintenance around running the protocol. For
example, you can turn MicroSoft's SmartDrv on and off in
this method, toggle X00 port locking, etc. The uses are
endless, and for some external protocols, such as HSLink and
vFAST, you may need a convertor to convert their native
log file to a DSZLOG compatible format. You can run the
log convertor last, right before the batch file exits and
jumps back into Oblivion/2.
Option D is the actual commandline for the protocol. Refer
to the protocol's documentation for the proper commandlines
for your system and the protocol direction you wish to use.
Option E deletes the current protocol.
Option I inserts a new protocol.
Options ] and [ take you one protocol right or left.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 60
Section 13 PROTOCOL EDITOR
────────────────────────────────────────────────────────────────────
The following is a list of percent codes you can use on the
commandline to give the protocol different information on the user's
connection:
%1 COM port in use (1-4).
%2 Locked speed (what the COM port is locked at).
%3 The filename to be sent or received, or the filename of
the textfile containing the list of files to be sent or
received.
%4 The connected baudrate (the actual connection speed).
%5 The logfile name (DSZLOG.n where n=current node).
%6 Base address for the current COM port. This is only
necessary if you defined it in Section 3.5:
Communication Information, for a nonstandard COM port.
%7 IRQ number for the COM port, only if defined in the
Configuration for a nonstandard COM port.
%8 Current node's node number
All of the information for these codes are supplied by Oblivion/2 so
you don't have to worry about them. All you need to do is make sure
the communications information is correct (see Section 3.5).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 61
Section 14 ARCHIVE EDITOR
────────────────────────────────────────────────────────────────────
Section 14: ARCHIVE EDITOR
The archive editor allows the sysop to setup and define a number of
archivers for the use of both him and his users. This is a powerful
menu and should be setup carefully, as errors in the configuration
can cause your upload checker to constantly fail files or could even
damage some of your archives.
The archive editor is instrumental in allowing the users the ability
to choose which archiver they would like to use for their personal
use. Their configured archiver can be used to package their
downloaded QWK packets, message captures, file lists, etc.
Oblivion/2, when dealing with archives, does not rely on the file
extension to determine what kind of archive type it is. A file
compressed with PKZip does not have to have a ZIP extension for
Oblivion/2 to recognize it. Oblivion/2 goes by the signature string
of the archives when determining the archive type. A list of
different archive signature strings is given below for your use.
Once you enter the archive editor, you will be presented with a
number of options. Don't be overwhelmed by them. There are many,
but it is easy enough to setup, properly, a new archive type.
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit [,] Change Arc Oblivion/2 Archiver Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Archive Name : PKZIP │
│ (B) Archive Ext. : ZIP │
│ (C) Use Zip Viewer : Yes │
│ (D) Swap for Coms : Yes │
│ (E) Compress Com : PKZIP.BAT -rpaex %1 %2 │
│ (F) Extract Com : PKUNZIP.BAT -o -) %1 %3 %2 -N │
│ (G) View Com : ZPVIEW.BAT %1 %3 │
│ (H) Delete F Com : PKZIP.BAT -D %1 %2 │
│ (I) Max Ok/Test Com: 1/PKUNZIP.BAT -T %1 │
│ (J) Add Comment Com: ZPADDCOM.BAT %1 %2 %3 │
│ (K) Add Files Com : PKZIP.BAT -A %1 %2 │
│ (L) Sig String : PK │
│ (M) Sig Location : 1 │
│ (N) List Prefix : @ │
│ (O) Checker Only : No │
│ (=) Insert Archiver │
│ (-) Delete Archiver │
╘══════════════════════════════════════════════════════════════════╛
Option A is the name of the archive. This name is displayed to
the user when they choose their default archiver.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 62
Section 14 ARCHIVE EDITOR
────────────────────────────────────────────────────────────────────
Option B is the usual extension of the archive (ie. ZIP, RAR,
UC2, LZH, etc.).
Option C determines whether or not you will be able to use the
internal ZIP viewer. In most cases you will not be able to
unless the archiver is ZIP compatible.
Option D determines whether or not the BBS should swap into
memory to execute the archiver commands. This is probably a
good idea as some archivers will not function properly unless
given a healthy amount of memory.
Option E is the commandline to compress files with this
archiver. Oblivion/2 will look for the executable in the main
BBS directory. If you want to use an archiver and you don't
want to place it in your BBS directory, you can call a batchfile
to call the archiver instead. In the above example, PKZIP.BAT
looks like this:
@echo off
@C:\UT\PKZIP.EXE %1 %2 %3 %4 %5 %6 %7 %8 %9
In this field, the following percent codes are valid:
%1 Path and filename.
%2 Wildcard.
Option F is the commandline to extract files with this archiver,
with the following valid percent codes:
%1 Path and filename.
%2 Wildcard.
%3 Path to the work directory.
Option G is the commandline to view the contents of the archive.
This must be done using DOS redirection commands and through the
use of a batchfile. The file that contains the output from the
archive LIST command must be called ARCLIST. in the work
directory for the particular node. The following percent codes
are valid:
%1 Path and filename.
%2 Wildcard.
%3 Path to your work directory.
An example batchfile using the DOS redirection commands with
PKZip would look like this:
@echo off
@C:\UT\PKZIP.EXE -V %1 > %2ARCLIST.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 63
Section 14 ARCHIVE EDITOR
────────────────────────────────────────────────────────────────────
Option H is the commandline to delete files from the archive,
with the following valid percent codes:
%1 Path and filename.
%2 Filename to delete OR list of files to delete (read from
the configuration (see Section 3.2)).
Option I is the commandline to test the integrity of archives
and the maximum errorlevel the archiver can give to report that
the archive is ok. Errorlevels reported back by the archiver
that are higher than this number will be considered an integrity
test failure. PKZip archives with the verification (AV)
stamping will report an errorlevel of 1 if they are ok, but most
errorlevels report back an errorlevel of 0 if they are ok.
However, this varies for each archiver, so refer to the archiver
documentation to find out for sure.
Option J is the commandline to add comments to the archive.
Again, you must use the DOS redirection commands in a batchfile
in order for this to work. The following percent codes are
valid:
%1 Path and filename.
%2 Comment file (read from the configuration (see Section
3.2)).
Option K is the commandline to add files to the archive (such as
BBS advertisements, etc.). The following percent codes are
valid:
%1 Path and filename.
%2 File to be added OR list of files to be added (read from
the configuration (see Section 3.2)).
Option L is the signature string of the particular archive. See
below for some signature strings for different archiver types.
Option M is the location (in the file) of the signature string.
See below.
Option N is the list prefix for files containing a list of files
to be either deleted or added, etc. See below.
Option O tells Oblivion/2 whether this archiver is to be used
for upload processing only and NOT for personal use by the user
(in QWK packaging, message captures, etc.). Set this to Yes if
the archiver type is to be used only by the upload checker and
No if it can be used by the users for their personal use.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 64
Section 14 ARCHIVE EDITOR
────────────────────────────────────────────────────────────────────
14.1: Archive Signature Strings
Archive signature strings are relatively easy to find out. However,
below is a compiled list of some of the more popular ones. If you
need to use an archiver other than one of the ones listed below, you
must refer to the documentation for the information needed
(signature string, list prefix, and signature location).
NOTE: I wasn't able to find all of the list prefixes for all of the
archivers listed below, so the ones with a ??? in the List Pref
field are unknowns and you'll need to find them yourself.
PKZip v2.04g
Sig : 504B0304
Sig Loc : 1
List Pref: @
ARJ v2.50
Sig : 60EA
Sig Loc : 1
List Pref: !
RAR v1.55
Sig : 52617221
Sig Loc : 1
List Pref: @
UC2 r3PRO
Sig : 554332
Sig Loc : 1
List Pref: @
LHA v2.13
Sig : 2D6C68352D
Sig Loc : 3
List Pref: @
HPACK v0.78A0
Sig : 4850414B
Sig Loc : 1
List Pref: ???
Hap&Pah TM v3.00
Sig : 91334846
Sig Loc : 1
List Pref: ???
ZOO v2.10
Sig : DCA7C4FD
Sig Loc : 21
List Pref: ???
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 65
Section 14 ARCHIVE EDITOR
────────────────────────────────────────────────────────────────────
HA v0.98
Sig : 4841
Sig Loc : 1
List Pref: ???
DWC v5.10
Sig : 445743
Sig Loc : -4
List Pref: None
PKPak v3.61 (SEA compatible mode)
Sig : 1A
Sig Loc : 1
List Pref: @
PAK v2.51
Sig : 1A0A
Sig Loc : 1
List Pref: ???
HYPER v2.6
Sig : 1A4850
Sig Loc : 1
List Pref: None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 66
Section 15 CONFERENCE EDITOR
────────────────────────────────────────────────────────────────────
Section 15: CONFERENCE EDITOR
The conferencing system of Oblivion/2 allows for a lot of
flexibility and a lot of room for expansion of your system. There
are two types of conferences: Messages and Files. Of each type,
you may have up to 255 conferences, making a total of 510
conferences allowed on your system. The conferences can also be
used to seperate different sections of your board, as each can be
configured with different access requirements.
The Conference Editor is located in the sysop menu. Once you select
it, you will be asked whether you want to edit file conferences or
message conferences. Once you have selected the conference type you
want to edit, you will be in a menu where you can Add a conference,
Delete a conference, Edit a conference, Users with access, List,
Reorder or Change Type. All are self-explanatory, but the Change
Type command will allow you to switch between message and file
conferences without having to exit the menu. Reorder will allow you
to change the conference IDs of the conferences (ie. making conf 1
into conf 2, etc.). Users with access will display a list of all
users with access to the conference.
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Conference Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ Conference ID : 3 │
├──────────────────────────────────────────────────────────────────┤
│ (A) Description : DaemonNet International │
│ (B) ACS : ~FD │
│ (C) Password : │
╘══════════════════════════════════════════════════════════════════╛
The Conference ID is the absolute ID number of the conference.
This is the number you will need to use when using the JT or JF
menu commands (see Section 22.5.14).
Option A is the description, or name, of the current conference.
Option B is the access required to access the conference. In
the above example, you must NOT have ACS flag D (in the first
user set) to have access. In the internal conference listing,
if a user does not have access to a conference, they don't even
see it. In the above example, a user with user flag D will not
see this conference listed.
Option C is the password required to enter the conference. If
the user doesn't know the password, they will return to the
conference listing.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 67
Section 16 DATA AREA CONFIGURATION
────────────────────────────────────────────────────────────────────
Section 16: DATA AREA CONFIGURATION
The data area system of Oblivion/2 is simply a more configurable
form of databases. With it, you can make almost anything you could
think of. The default Oblivion/2 setup already comes with a BBS
List, Rumors, and Oneliners. All of these are created with the data
area system, and can be altered and modified any way the sysop
chooses.
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Data Area Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Area Name : BBS List │
│ (B) Access ACS : │
│ (C) Add ACS : │
│ (D) List Prefix : BBS │
│ (E) Add Ansi : ADDBBS.ANS │
│ (F) Sponsor : Sysop │
│ (G) Allow Anonymous: No │
│ (H) Store Message : Yes │
│ (I) Data File Name : BBSLIST │
│ (J) Show Ansi : SHOWBBS.ANS │
│ (K) AutoDelete : 0 │
│ (L) Directory : │
│ (M) Node Number : │
│ (N) Force Message : No │
╘══════════════════════════════════════════════════════════════════╛
Option A is the name of the data area. In this case, the BBS
List.
Option B is the access needed to enter the data area.
Option C is the access needed to add an entry to the data area.
Option D is the prefix (max 5 characters) of the 3-part ansis
used in the listing. In this case, you would need to create the
three files BBSSRT.ANS (the header), BBSMID.ANS (the repeating
middle), and BBSEND.ANS (the footer). See Section 27 for more
information on making the repeat ansis.
Option E is the name of the ansi that is displayed when the user
wishes to add to the data area. In this case, the ansi could be
a box or design with BBS name, number, etc. fields in it. The
ansi is going to have to contain some MCI codes (see below).
Option F is the name of the user that can edit the data area.
You can appoint data area sysops or allow users to maintain
their own data areas in this manner. The user does not have to
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 68
Section 16 DATA AREA CONFIGURATION
────────────────────────────────────────────────────────────────────
have sysop access in order to edit their data area.
Option G defines whether or not additions can be made
anonymously. If Yes, users will be allowed to add anonymously
to the data area.
Option H defines whether or not this data area will be permitted
to store an additional message. Users will be able to fill out
the basic information, and then, if this option is Yes, they
will be prompted as to whether or not they would like to add an
accompanying message. In the case of a BBS List, this could be
used to store an ansi or ascii advertisement of the board.
Option I is the name of the data file, where all the information
in this data area is stored. It is stored in the same manner as
message areas, so it should be unique from any other data area
or message base.
Option J is the name of the ansi used to show the information
contained in an entry (it should show what the users entered
when they added to the data area). Since in the listings, you
can only put in a certain amount of information, this would be
used to show more detailed information, and should contain the
same MCI codes as the Add Ansi contained.
Option K defines the maximum number of entries in the data area.
Entries will be auto-purged to remain equal to or lower than
this number. A value of 0 tells the BBS not to auto-purge
anything.
Option L is the directory to export messages to when DATAMAIL is
called. Because you can network these data areas between
Oblivion/2 systems, this would work much the same as any message
base. DATAMAIL is used to export and import messages to and
from the data base files, while your mail tosser would look in
this directory to scan for outbound "mail".
Option M is your node address for the network you are in that is
allowing the networked data area. If the area is the ImpactNet
Networked BBS List, you would put your ImpactNet node address
here and nothing else.
Option N defines whether or not the additional message will be
optional or forced. If set to Yes, the users will be forced
into the message editor.
After you have completed configuring this part of the data area
configuration and you press "Q" to quit, you will be prompted as to
whether or not you want to edit the Options. Select Yes and you
will see a screen similar to that below:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 69
Section 16 DATA AREA CONFIGURATION
────────────────────────────────────────────────────────────────────
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Data MCI Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (O) Option : BBS Name │
│ (L) Length : 35 │
│ (M) MCI Code : BN │
│ ([) Previous Option │
│ (]) Next Option │
│ (D) Delete Option │
│ (A) Add Option │
╘══════════════════════════════════════════════════════════════════╛
Option O is the name of the option.
Option L is how long this option's field can be. In the above
example, the option has a field that allows a maximum of 35
characters to be entered.
Option M is the MCI code for this option. In the above example,
the defined MCI code is BN, so in your Add Ansi and Show Ansi
you would use either |BN or %BN in the ansi behind a "BBS Name:"
prompt or something similar. The beginning of the MCI code is
where the user will be prompted to enter their input. For
example:
BBS Name: |BN
^---- user's cursor would go here.
The actual MCI codes are either |BN or %BN. As you can see
above, the | and % are not to be placed in the editor. Those
are simply markers in the ansi and should not be placed in the
Options Editor.
If you used, as shown above, |BN in your ansi, the user would be
able to press enter through the field; in other words it is
abortable. If, however, you used %BN, Oblivion/2 would not move
the cursor to the next field until the user had entered some
data in that particular field.
Data areas take a little bit of getting used to, but once you get
the hang of it, you can do almost anything you like, and a properly
setup data area will be pleasing to both you and your users.
As it was stated above, you can network the data areas. When a user
adds an entry to a networked data area, it is similar to writing an
echomail message, and the entry will be exported in the same manner
that a message would. There is no special technique to use with
your mail tosser. You would merely setup a networked data area
exactly the same as you would an echomail area. The JAM base
defined above must be the same as that defined in the mail tosser
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 70
Section 16 DATA AREA CONFIGURATION
────────────────────────────────────────────────────────────────────
for it to work correctly.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 71
Section 17 EMAIL
────────────────────────────────────────────────────────────────────
Section 17: EMAIL
Email is private user to user mail. This is as close to private
mail as any system is going to get with a BBS.
17.1: The Email Tag System
The Email Tag system is a powerful system that gives you extended
control and manipulation over your system's electronic mail
features. The tag system allows you to assign certain tags to
certain types of email.
For example, you could assign new user application mail a tag of 1.
Then you could give a user (other than the sysop) access to read
mail with a tag of 1 (your co-sysop for example). Then the co-sysop
would be able to validate new users. This system can be used for
many other things as well as this. The uses are endless.
The email tag system has four basic menu commands which are as
follows:
E+ Allows user to read all mail with the specified tag.
(Use the E$ and E# commands to set the tag number).
E- Allows user to read only mail that is addressed to him,
taking away the email tag access.
E$ Sets the incoming email tag to the value of CString,
where the CString is of a value between 0 and 255, where
0 allows user to see ALL mail regardless of tag (ie.
general public message).
E# Sets the outgoing email tag to the value of CString,
where the CString is a value between 0 and 255.
The following is how you would go about setting up the above example
of allowing a co-sysop to read the new user application letter:
Step 1: Stack an E$ command with a CString of 1 before the apply
command at the matrix.
Step 2: Stack a E$ command with a CString of 0 after the apply
command at the matrix.
Step 3: Add two commands to the Email menu. The first being E$
with a CString of 1. The second command is an E+
command. These commands should be stacked together so
that your co-sysop can press one key to read the new
user mail.
Step 4: Add two commands to the Email menu. The first being E$
with a CString of 0. The second should be an E-
command. These commands should be stacked together so
that your co-sysop can press one key to return back to
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 72
Section 17 EMAIL
────────────────────────────────────────────────────────────────────
his normal email privelidges (reading his own mail).
17.2: Group Mail
Another nice feature of Oblivion/2 and the way it handles electronic
mail is the Group Mail feature. This will allow users to send mail
to an entire defined group of people (kind of like mass emailing).
You may have this group open for users to define or you can restrict
it so that only the sysop can add and delete groups.
When you select to edit an email group, you will be asked if you
want to add, delete, or edit a group. If you select to add a group,
you will be asked a number of questions.
Enter Group Name:
This is the name you are assigning this group. This will be
used by users. When a user enters email to this group (in
the To: field) the mail will be sent to all members of this
group.
Should this group be for your use only?
If you select Yes, you will be the only person able to use
this group. If set to No, anyone can send mail to this
group.
Should this group be for members use only?
If Yes, only the defined members of this group will be able
to use it. If set to No, anyone, regardless of whether they
are in the group or not, will be able to use it.
Include yourself in this group?
If Yes, you will be a member of the group. If No, you will
not be a member of it.
Set group by ACS?
If Yes, you will be prompted for an ACS string. All users
who match this ACS string will be added to the group. For
example, if you enter A18, all users 18 years old and older
will be added to the group.
Enter member to add:
This is where you can define the single members of the group
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 73
Section 17 EMAIL
────────────────────────────────────────────────────────────────────
by entering in their name. Wildcarding of names is allowed.
If you enter * alone, you will be prompted for users one by
one. If you entered H*, all user aliases beginning with the
letter H will be prompted for you to add.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 74
Section 18 THE CHAT SYSTEM
────────────────────────────────────────────────────────────────────
Section 18: THE CHAT SYSTEM
The chat system of Oblivion/2 is one that is a little more versatile
than most other chat systems. With it you can define your own chat
screen and have a little control over the chat logging system.
There are a few commands that can be used when chat mode is engaged:
/TYPE Allows the sysop to type any file in the textfile
directory.
/PAGE In single-line chat, this command will page the sysop.
In split-screen chat, this command will page the user.
F6 This command is used by the sysop to toggle on/off the
chat logs.
18.1: Configurable Chat Screen
The configurable chat screen was born of the idea that every sysop
should be able to make a board so unique that even the entire chat
system was 100% sysop defined. With it, you can design horizontal
chat screens, vertical, diagonal, anything that pops into your mind.
It is so versatile that you can do almost anything you like with it,
instead of simply designing an enter chat and exit chat string.
To define your own chat screen, follow these instructions:
1) Draw the ansi design for your chat screen. This file must be
called CHATDEF.ANS and must be in your textfile directory.
2) Using TheDraw, place CHATDEF.ANS into animation mode (ALT-J, A)
and choose your scanning method. Generally, TOP scan is chosen,
but you can use any scanning method you like.
3) You now have to define the margins for the sysop half of the chat
screen, and then the user half of the screen. This is done using
special MCI codes, which are as follows:
^xx Sysop half, left margin
&xx Sysop half, right margin
`xx User half, left margin
~xx User half, right margin
These MCI codes will tell Oblivion/2 where to word-wrap each line
when chat is engaged. The below is a sample of a chat screen
showing sysop and user margin MCI codes:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 75
Section 18 THE CHAT SYSTEM
────────────────────────────────────────────────────────────────────
^01 &01
^02 &02
────|SN────────────────[ Split Screen Chat ]────────|UN─────────
`01 ~01
`02 ~02
As you can see, the first MCI code (^xx and `xx respectively)
will tell Oblivion/2 where to begin typing the text to the
screen. The first letter typed on the beginning of any line will
begin where the ^ and ` characters are placed. So if the sysop
typed the word "Hello" on the first line, it would look like
this:
Hello &01
^02 &02
────|SN────────────────[ Split Screen Chat ]────────|UN─────────
`01 ~01
`02 ~02
The MCI codes have been expanded from "xx" to a number value.
This tells Oblivion/2 which line of text it is working with. The
^01 and &01 MCI codes tell Oblivion/2 to begin line 01 for the
sysop, and end line 01 for the sysop. So these MCI codes must be
on the same line, indicating start and stop "margins" otherwise
your screen will become a huge mess.
The word-wrapping feature begins where the right margin MCI codes
(&xx and ~xx respectively) begin. Oblivion/2 will word-wrap as
soon as it encounters the & and ~ characters. If the user typed
in a full line of text and continued without pressing the enter
key, the following would be displayed:
^01 &01
^02 &02
────|SN────────────────[ Split Screen Chat ]────────|UN─────────
This is a really cool board, I love it. I don't think you
could have done anything better. ~02
Because the word "could" was longer than the allowable space
after the word "you" and before the ~01 MCI code, it was wrapped,
beginning where the `02 MCI code began.
You can also use the following two MCI codes in your chat screen.
|SN Sysop name
|UN User name
These MCI codes are not required in your chat screen, and are
there only if you wish to use them.
The following is an example of a vertical chat screen:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 76
Section 18 THE CHAT SYSTEM
────────────────────────────────────────────────────────────────────
──────|SN──────────────────────┬──────|UN───────────────────────
^01 &01`01 ~01
^02 &02`02 ~02
^03 &03`03 ~03
───────────────────────────────┴────────────────────────────────
For the user's left margin, you want to place the MCI codes
directly after the │ character so that the user can have as much
typing room as possible, and since their typing begins at the
position the ` character holds, this will ensure it. The sysop's
right margin MCI codes should be as shown above, with an extra
space before the │ character, as this will ensure that the line
does not get overwritten. As shown above, the MCI codes
overwrite the middle line. However, since you animate the codes
on "top" of the line in TheDraw, the line will be visible while
the MCI codes will become invisible as Oblivion/2 interprets
them.
As mentioned before in regards to repeat ansis, TheDraw will try
to use the following segment of ansi code:
^01esc[34C&01
This is not good and may mess up your screen, because what it is
doing is telling the cursor to move 34 characters to the right
and then draw the &01 code. You should always hand-edit your
finished product so that it goes to absolute screen positions,
like so:
^01esc[2;37H&01
This will tell the cursor to go to row 2, column 37, and then
insert the &01 command. The esc is, of course, the ALT-027 key.
You may want to do this with the |SN and |UN MCI codes as well.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 77
Section 19 GENERIC MENU CONFIGURATION
────────────────────────────────────────────────────────────────────
Section 19: GENERIC MENU CONFIGURATION
The generic menu system was designed for sysops who wanted an easy
to use, yet powerful, menuset system. You could almost say it was
designed with the "lazy sysop" in mind. The generic menu system is,
basically, a repeat method of menus. The commands and keys are read
from the menu file so if you change your menus, you need never
change your ansis, no matter how many times you change them. This
is, simply, the answer to many sysop's annoyances, in terms of ansi
menu editing.
This system will allow the sysop to design a nice looking menuset
and never maintain it again. It is a simple, yet powerful, ansi
menu system, as the ansis "update" themselves automatically whenever
a change is made.
The design is the same as Repeat Method ansis. The following MCI
codes are used in the repeat generic menu ansis:
GENSRT .ANS - Generic Menu Template Header
|MT Menu title
GENMID .ANS - Generic Menu Template Middle (Repeat)
|K? Keys for option ? in the line
|D? Description for option ? in the line
GENEND .ANS - Generic Menu Template Footer
Now, if you read Section 27 on the Repeat Ansi Method, this will be
very easy for you as it follows the basic principles of ansi
creation as the other Repeat Method ansis. The header and footer
ansis (GENSRT.ANS and GENEND.ANS respectively) are very
straightforward. These should not cause you any problems. The
middle ansi, GENMID.ANS, needs a little explaining.
Before you begin designing your middle ansi, you need to decide how
many options you want per column in your generic menus. This is an
option defined in the System Configuration (see Section 3.2). The
limits are 1-9 (or 1-9 options per line). After you have defined
this value, you are ready to make your generic menus.
The two pipe codes, |K? and |D? that make up GENMID.ANS are very
easy to understand. |K? will print the key (what the user must
press to access the option), and |D? will print the description of
the command. Perhaps you wanted to make a generic set of 3 columns,
with 5 options per row. You would set the value (discussed above)
in the System Configuration to 5. Then you would have to edit the
GENMID.ANS and place your MCI codes in a similar fashion:
[|K1] |D1 [|K2] |D2 [|K3] |D3
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 78
Section 19 GENERIC MENU CONFIGURATION
────────────────────────────────────────────────────────────────────
With a design like this, your generic menu will look something like
this:
[1] Option #1 [2] Option #2 [3] Option #3
[4] Option #4 [5] Option #5 [6] Option #6
And so on, for a total of 5 lines. This menu would fit a maximum of
15 total options (3 columns x 5 rows).
The creation of the ansis is very simple. And the fact that you
only have to do it once is very appealing. Now that you have
created your generic menuset, you have a few choices of places to
put them. You can code the menu into a status screen library, or
you can code it into a menuset library.
If you wish to code it into a status screen library, you must
include the three-part GENxxx.ANS files with the other files in the
specific library in your temporary directory. STATCODE.EXE will
automatically include them in the completed LIB/NDX files, along
with your other status screens.
If you wish to code the generic menus into a library of their own,
you'll need to include a commandline option to MENUCODE.EXE. This
switch, /G, will code generic menus into a menu library file. An
example commandline would be:
MENUCODE.EXE OBV2 C:\TEMP /G
This will code OBV2.LIB (with the index files being OBV2.NDX) with
the GENxxx.ANS files found in the directory C:\TEMP, along with any
other files in the directory. This way, you can use a combination
of regular ansis for some menus, and use the generic menus for the
rest.
You can also use another feature when coding the generic menus into
your menuset libraries. You can override the System Configuration
setting (see Section 3.2) of the options per row. In the above
example, we had 5 options per row. Perhaps you wanted to change
that value to 3 options per row for this SPECIFIC menuset alone.
You would use the following commandline to do this:
MENUCODE.EXE 3OBV2 C:\TEMP /G
The "3" before the rest of the library name tells Oblivion/2 that
this generic menuset will be using 3 options per row, as opposed to
the default of 5 options per row. This number can be anywhere
within the defined limits, 1-9. This allows you to make different
generic menus and let your users select which one they prefer.
Please note that if you use this option, your compiled library will
be called 3OBV2.LIB and not just OBV2.LIB.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 79
Section 20 MINI-DOS
────────────────────────────────────────────────────────────────────
Section 20: MINI-DOS
The Mini-DOS system in Oblivion/2 is a handy feature for remote
sysops to do some maintenance on the system. It supports the
following "DOS" commands:
X
VZ <filename.zip> Views the contents of a zip file
DIR Displays the files in the current directory
CD <dirname> Changes Directories
MD <dirname> Creates Directory
RD <dirname> Removes Directory
EDIT <filename.ext> Edits text file
HELP Displays help
TYPE <filename.ext> Display a text/ansi file
COPY <source> <dest> Copy a file
SEND <filename.ext> Sends a file to the user from local machine
RECV <filename.ext> Recieves a file from the user
HANGUP Hangsup on user
EXIT Return from minidos
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 80
Section 21 ECHOMAIL NETWORKING OBLIVION/2
────────────────────────────────────────────────────────────────────
Section 21: ECHOMAIL NETWORKING OBLIVION/2
21.1: Using a FrontEnd Mailer with Oblivion/2
It is very easy to integrate a frontend mailer with Oblivion/2.
There are many mailers to choose from, such as InterMail, FrontDoor,
D'Bridge, and Portal of Power, to name a few. Each runs a little
differently, but the concepts are basically the same.
When you have set up your mailer and want to have it exit to load
your BBS, there are a few different methods you can use, depending
largely upon which mailer you have chosen. The two most common
methods are the long batch method and the triple-batch method. Your
mailer documentation will explain these in more detail (or describe
something completely different, again depending on which mailer you
are using), but the basics are thus. The long batch method means
you use one batchfile to run everything. The triple-batch method
means your mailer, when receiving a human caller for the BBS, will
create a batchfile (typically called DOBBS.BAT) which will then
call another, definable batchfile, typically called EXEBBS.BAT. Of
course, the names of these batchfiles depend upon which mailer you
are using.
The triple-batch method is the easiest, and perhaps the fastest.
With it you define an errorlevel, in your mailer, which, when a
human caller for the BBS is received, will exit with the defined
errorlevel. For this example, the errorlevel defined will be 99.
Your batchfile would look something like this, after you have called
the mailer:
:start
mcmail.exe %1 %2 %3 %4
if errorlevel 99 bbsbat1
This will call up MCMAIL.EXE (the main executable for McMail) with
any commandline parameters, and if McMail exits with an errorlevel
of 99, will load BBSBAT1.BAT (which McMail creates). The
BBSBAT1.BAT will look something like this:
SPAWNBBS 14400 1
What this does is call SPAWNBBS.BAT with the connect speed (14400)
and the com port (1). Your SPAWNBBS.BAT, then, to load Oblivion/2
would look like this:
OBV.EXE -B %1 -N 1 -A
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 81
Section 21 ECHOMAIL NETWORKING OBLIVION/2
────────────────────────────────────────────────────────────────────
This is very simple. It loads Oblivion/2 with a baudrate of 14400
(the first parameter after SPAWNBBS in the BBSBAT1.BAT file), loads
node 1, and -A tells Oblivion/2 to exit back to DOS when the user logs
off, instead of cycling back to the WFC screen.
The longbatch method is a little more complex. With it, a series of
errorlevels are predefined for you. These are typically 24 for a
2400 connect, 144 for a 14400 connect, etc. Your main batchfile
will look, then, like this:
:start
mcmail.exe %1 %2 %3 %4
if errorlevel 144 goto 14400
if errorlevel 24 goto 2400
:14400
obv.exe -B 14400 -N 1 -A
goto start
:2400
obv.exe -B 2400 -N 1 -A
goto start
This is a simple method as well, but involves bigger batchfiles and
a little more typing. For each connect rate is a defined
errorlevel, as shown above. For each errorlevel, you must define a
corresponding label for the batchfile to go to should McMail exit
with that errorlevel. And then, as shown above, for each label, you
must define what baudrate Oblivion/2 must then be loaded with.
It is very simple to incorporate Oblivion/2 with a frontend mailer.
You can have it fully functional within a matter of minutes. There
are no hidden tricks, just simple and straightforward.
21.2: Using a Mail Processor with Oblivion/2
There as many different mail processors out there as there are
frontend mailers. A mail processor will import inbound echomail or
netmail, and export outbound echomail or netmail. It can also
maintain your JAM message bases. Two of the most popular mail
tossers are FastEcho and GEcho. It is very simple to set these up
with Oblivion/2, as both support JAM and Fido/*.MSG. Your mail
processor will also come with a maintenance utility, FEUtil for
FastEcho, and MBUtil for GEcho. These will perform maintenance on
your JAM bases, purging, deleting, renumbering, and linking
messages, to name a few.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 82
Section 21 ECHOMAIL NETWORKING OBLIVION/2
────────────────────────────────────────────────────────────────────
As most mail processors are fairly generic in terms of how they run,
they won't be explained in detail here. Suffice it to say that if
you have an operational mail processor, it will work with
Oblivion/2. Please read your mail processor documentation for
exactly how to set them up to work with the JAM message base type.
Also refer to Section 25.2 for more information on the JAM message
bases.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 83
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Section 22: MENU EDITOR
The Oblivion/2 menu editor is THE single most powerful function in
this package. It's power is virtually unmatched by any other BBS
software package. The menu editor will allow you to modify,
customize, and create a completely original menu system that could,
in essense, create a totally original feel for each different
Oblivion/2 system.
The menu editor is simple to use, but is built on a complex series
of menu commands. These menu commands are the heart and soul of any
BBS, and the wide variety and flexibility offered by Oblivion/2's
menu commands make it a force to be reckoned with. Commands can be
used alone or stacked together, they can be restricted by access
levels, user ACS flags, age, conference number, number of calls, or
a whole host of other levels.
Because of the variety of Oblivion/2 menu "programming" and the
sometimes complex menuing systems you can create, it is impossible
to clearly illustrate just how powerful the system is. In fact,
even if many examples and illustrations were given, the
documentation would only grow larger than could be handled. The
adventure, the actual exploring, relies with you. There are many
"third-party" examples of menu "programming" available that will
give you plenty of ideas, however please be aware and always
remember that you will NEVER know how powerful the menuing system is
unless you can get your hands in and get them dirty yourself. In
the next few sections, all of the available menu commands will be
explained to you. It is up to you to decide what to do with them.
22.1: Using the Menu Editor
Oblivion/2's menu editor is much like Telegard's (and it's
succeeding hacks). However, it is far more advanced and has more
expanded functions.
The main menu editing screen consists of a few major functions that
need explaining.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 84
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Name : Main Menu │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : MAIN │
│ (E) Name In Prompt : Main │
│ (F) Menu Title : Main Menu │
│ (G) Pulldown File : │
│ (H) Edit Options │
│ (I) Generic Menus │
╘══════════════════════════════════════════════════════════════════╛
Option A is the name of the menu. This has no bearing on the
menu itself other than as an identifier for you.
Option B is an optional password to the menu. If a user does
not have the password, they are sent back to the menu they were
attempting to leave.
Option C is the fallback menu. This is the menu that is
returned to on an issued fallback command. If no fallback menu
is specified, then the BBS will make the last menu in the stack
as the fallback menu.
Option D is the ID that is hardcoded into the menu libraries.
For example, in the above example, the Help ID of "MAIN" would
make Oblivion/2 look for a file called MAIN.ANS when compiling
the menu libraries and would be shown to users issuing a "?" at
the menu prompt.
Option E is the menu title to be displayed in the menu prompt.
Option F is not used at the moment and is merely a reserved
field. In the future, there may be third-party utilities that
use this field.
Option G is the pulldown ansi. See Section 22.2 for more
information on the pulldown system.
Option H allows for editing of the menu's actual commands and
options.
Option I displays a generic menu.
It is not difficult to get the hang off the main menu editing. It
is straightforward and simplistic, although it may take some time
getting used to.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 85
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
When you press H to edit the menu's options, you will be greeted by
a screen similar to the one below:
1 FIRSTCMD -F 2 FIRSTCMD E# 3 FIRSTCMD {A
4 FIRSTCMD E# 5 FIRSTCMD {X
Add Change Delete Move Quit :
This merely lets you move swiftly between commands. You may add new
commands here (entering blank spots for later configuration), change
an existing option, delete an option, reorder (move) the order of
the options, and quit back to the main menu editor.
22.2: The Pulldown System
The pulldown system is a powerful system that allows you to go
beyond simple prompt menus. This will allow you to create matrix
menus (also known as lightbar menus) or other, simpler single-task
menus.
In the main menu editor, Option G is the Pulldown File field. This
field can contain a number of commands. If the Pulldown File field
is blank, the user's current menu prompt will be drawn with the Name
in Prompt (Option E) in the prompt, and takes standard visible
input. Other commands are as follows:
::x
The system will randomly pick a letter from A to x (where x is
a letter in the alphabet (ie. ::C will randomly pick a letter
between A and C)) and reacts as if the user pressed that key.
For example, this command can be used to randomize different
matrices or lightbars. Perhaps you have four different
matrices that you want to randomize. Since the letter "D" is
the fourth letter in the alphabet, you would fill in the
Pulldown File field with "::D". In your MATRIX.MNU, you will
need four commands that have the Key field set to A, B, C, and
D. For each command (A, B, C, or D) you will want it to go to
a different menu. Those four menus will be your random
matrices. The below is an example of one command that would
be used in your MATRIX.MNU:
Description : Go to DOS matrix
Hidden : No
Command Keys: -^
Key : A
CString : DOSMAT
Pulldown ID : 0
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 86
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
You will have to do the same thing for the other three letters
(B, C, and D). In a random menu of this type, the only
commands that will be executed will be commands belonging to
those letters (and FIRSTCMD commands). If you had the
Pulldown File field set to "::D" and you had an option with
the Key as "Q", it would never be selected or usable. This
type of menu works WITHOUT user input.
N
Writes the Name in Prompt alone. It may contain the following
control codes:
^E User's input color.
^M Goes down one line (acts as a carriage return).
^P User's prompt color.
^R User's regular color.
^S User's status color.
^V User's inverse color.
^X User's box color.
You can use the following commands to end the Name in Prompt
field:
/ Yes/No bar prompt beginning with No
\ Yes/No bar prompt beginning with Yes
= Yes/No/Quit prompt beginning with Yes
| Yes/No/Quit prompt beginning with No
@ Yes/No/Quit prompt beginning with Quit
* User inputs string
: User inputs with a : in a different color
# Hotkey input without echo and responds to arrow keys
and gives the appropriate ascii equivalent in an
invisible prompt
) Hotkey input with echo and responds to arrow keys
and gives the appropriate ascii equivalent in an
invisible prompt
( Sets the string equal to the input question variable
set with the -H, -I, or -M menu commands
[ User inputs hidden string
You can use the following characters in the Keys field of any
menu when using a Name in Prompt ending with a # or ):
╚ Up arrow key (ALT-200)
╨ Down arrow key (ALT-208)
═ Right arrow key (ALT-205)
╦ Left arrow key (ALT-203)
╟ Home key (ALT-199)
╧ End key (ALT-207)
The following can be used in the Keys field for any menu:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 87
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Enter key (ALT-013)
All pipe color codes are also applicable in this prompt. This
form of menuing is used to make single-task menus that ask
questions, create hotkeyed menus, or get various input from
the users.
For example:
^EToggle Expert Mode? \
This will print "Toggle Exper Mode?" in the user's input color
and will print "Yes No" behind the question mark with "Yes"
highlighted as the default selection.
Bx
Creates a bar selection menu (lightbar) with x number of
columns. This is a lot like your pulldowns, except that it is
all on one line.
R
Creates a single line bar selection menu (lightbar). When
creating command stacks, make sure to only put a description
on the first option in the stack, otherwise the descriptions
for each command in the entire command stack will appear in
this menu. Also make sure that the descriptions for all the
commands in this menu do not exceed 80 columns, as this is a
ONE line bar menu. If your descriptions exceed 80 columns,
either shorten them or use a bar menu with the Bx command.
<FILENAME.EXT>
This is the name of the pulldown ansi to be used in your
pulldown menu. You must create an ansi to use and add some
MCI codes to tell the BBS where to place certain information.
There are two types of MCI codes that you will need to use in
this ansi. The first, |xx, tells the BBS where to put the
unhighlighted bar, and the second, %xx, tells the BBS where to
put the highlighted bar (bars are highlighted when the user
moves the cursor to that particular bar). When you place
these codes in your ansi, it is practical to place them
directly next to each other like this: |xx%xx. You can
include any other pipe color codes to change the color in the
unhighlighted display. Use the |- MCI code to return to the
original unhighlighted color. You would use the pipe codes
only if you were making a pulldown file that was drawn up in
ASCII form (as Oblivion/2 will use the ANSI color codes to
translate the bars).
The xx values in the | and % codes must be replaced with
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 88
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
numbers so that the BBS knows which option to execute. This
is where the Pulldown ID field of the menu editor comes into
play (Option G). You must give each one of your options a
unique ID number, and they must be consecutive (first option
is 1, second is 2, etc.). If you are stacking commands for
certain parts of the menu, only give the first command in the
stack a Pulldown ID.
Perhaps you wanted to make a pulldown matrix with five
different options that were: Login, Check, Apply, Feedback,
and Logoff. You would create your MATRIX.MNU and add in the
five options (see Section 22.5.3 for the proper menu commands
to use). Once this is done, go back and place in a Pulldown
ID for each of the five commands. Since you only have five
commands with no command stacking, give Login a Pulldown ID of
1, Check an ID of 2, Apply an ID of 3, Feedback an ID of 4,
and Logoff and ID of 5. After this is done, create your
pulldown ansi and place in the MCI codes as described above
(|01%01 for Login, |02%02 for Check, etc.), and your
pulldown menu is complete.
Perhaps you wanted to use the same matrix (described above),
but wanted to add some command stacking to it. For example,
perhaps you wanted the system to log a user into the BBS after
they had checked their access and were validated for the
system. This would be done using the FailFlag and a few menu
commands. Since this option requires more than one menu
command, it is called a command "stack". The first option in
this stack is going to be the check menu command. This
option alone will contain a Pulldown ID of 2 (as in the above
example) and every other command in the stack will have a
Pulldown ID of 0 (or the default of none).
The default pulldown menus are designed to only use the up and
down arrows. However, you can create pulldown menus that use
the left and right arrows as well. If you want the pulldown
to use the left and right arrows, make each one a menu command
where each would contain the ascii equivalent of the arrow key
(ALT-203 for left and ALT-205 for right). The options must be
hidden (Option C) and they must have a Pulldown ID of 0.
If you put the letter "L" in the Name in Prompt field of a
Pulldown menu, left key strokes will be interpreted as up, and
right key strokes will be interpreted as down.
22.3: Hidden Commands and Wildcarding
Within each menu command you define, you can also define whether or
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 89
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
not the command is hidden. The default is no, but you can change it
in the Command Editor (Option C). With this, you can create an
option in a pulldown menu that will not appear on the pulldown file,
but users can access it via a hotkey (ie. Q to Quit). The option
must be hidden and must have a Pulldown ID of 0. This will turn the
option into a hotkeyed command and users will be able to execute it
without using the lightbar.
You can also wildcard menu commands. If you set a Key (Option E)
to X*, and then put an * in the CString, anything that follows the X
key on the menu prompt (that the user inputs) will be placed into
the CString, replacing the * that is defined there. This can be
used in such cases as file conference jumping, where a Key of J*
would execute the JF menu command with a CString of *, so a user
could type in J1 to jump to conference 1, type J2 to jump to
conference 2, etc.
You can also place an & character in the CString which is set to the
input gained with a -H or -I menu command, or else set with a -*
command (the & character will be filled with the input gained from
the above menu commands, so the CString would not be &, as defined
in the menu editor, but would be whatever input was gained).
22.4: Command Stacking
Already you have heard the term "command stacking" many times, but
it has not yet been defined in such a way to show you it's true
potential. With command stacking, you can do multiple things with
the touch of one key. It, in essence, links multiple commands
together to work in unison.
For example, perhaps you wished to display a textfile, but wanted
the screen cleared first. You would create your first command to
clear the screen (with a -L menu command), and perhaps you wanted
the user to press the letter "T" to print the textfile. In the Keys
field you would enter the letter "T". Then you would, directly
after the -L command, create another command that used the -F menu
command. Also give it a Key of "T", and when the user presses the
letter "T" at the menu prompt, the -L command will be executed to
clear the screen, and then the -F command will be executed to print
a particular textfile. Command stacks can be as simple as this
example, or far more complex, but the basic principle behind it
remains the same. As long as the commands you wish to stack all
contain the exact SAME Key field, your commands will be stacked. If
your first command is K* and the command you want to stack after it
is K, the stack will not work. Both commands need to be K* or K,
and not a combination of both.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 90
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Below is a few examples that Lord Tracer wrote up. They accurately
show command stacking and linking, and will give you a better
picture of how it can be used. The examples shown use both the Menu
Editor and the Command Editor. See Section 22.5 for information on
how to use the Command Editor.
Examples:
GOODBYE.MNU - Pulldown Logoff Verify Menu
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Name : │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : │
│ (E) Name In Prompt : │
│ (F) Menu Title : │
│ (G) Pulldown ANSI : LOGOFF.ANS │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═══════════════════════════════════════════════════════════╛
Use Pulldown Ansi LOGOFF.ANS
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 91
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : Yes │
│ (D) Command Keys : [G │
│ (E) Keys : Y │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Y as a hotkey to logoff
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : Yes │
│ (D) Command Keys : -\ │
│ (E) Keys : N │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
N as a hotkey to go back
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : Yes │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : [G │
│ (E) Keys : 1 │
│ (F) Command String : │
│ (G) Pulldown ID : 1 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
"Yes" will appear in pulldown option 1 and when selected it will do
a logoff.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 92
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : No │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -\ │
│ (E) Keys : 2 │
│ (F) Command String : │
│ (G) Pulldown ID : 2 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
"No" will appear in pulldown option 2 and when selected it will go
back.
Another example, the not very nice case. This was devised by me,
Darkened Enmity, for Whiplash. He wanted to use a pulldown menu to
select file conferences. I got the idea of the -* command and the
use of & in the CString. I knew that would work, and the next day
I wrote out the codes. This is the CONFHAND.MNU for you to look at
since it is complex, but will allow you to understand how things
are done. There is a menu called CONFSEL.MNU that will select the
file conference in a pulldown. CONFSEL is called like this:
Command 1 in Stack:
Command Keys : -*
Keys : T*
Command String: *
Command 2 in Stack:
Command Keys : -/
Keys : T*
Command String: CONFHAND
Now here is CONFHAND.MNU:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 93
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
╒═════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═════════════════════════════════════════════════════════╛
╒═════════════════════════════════════════════════════════╕
│ (A) Name : │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : │
│ (E) Name In Prompt : │
│ (F) Menu Title : │
│ (G) Pulldown ANSI : │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═════════════════════════════════════════════════════════╛
Not very interesting, but then the user does not even know that it
is doing anything.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -S │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : -B │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Turns off the B user flag. It will be used later in the menu as an
indicator.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -M │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 94
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Compares the inputted variable with a blank string. Remember,
before CONFHAND was called, the inputted variable was set to what
was entered after T by the -* command. If what was entered was
blank, the failflag is false, otherwise it is true.
╒══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : \ │
│ (C) Hidden : No │
│ (D) Command Keys : -S │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : +B │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════╛
This command will be executed if the failflag is true, in other
words, what was entered after T was not blank. Therefore, if the
user had type T1, then B will be set, otherwise it remains blank.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : JF │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : & │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If flag B is set, the BBS will do a file conference jump to that
conference. A trace through up until this point: User enters Txxx
xxx is put into the input variable. The BBS compares xxx to a
blank string, if they are not equal, flag B is set. The BBS joins
relative file conference xxx.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 95
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : -C │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Turns failflag off, that is necessary to know if the next command
failed.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : FI │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Tries doing a file initialization. If its successful, fail flag is
still false.
╒══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB~\ │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FSCAN │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════╛
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 96
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
If flag B is set and the file init was successful, the BBS will go
to FSCAN, the menu that asks if you want to scan the file bases.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : MAIN │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If flag B is set, meaning the BBS would have tried initializing the
file section and was not successful, and the BBS is still reading
CONFHAND, then the BBS will go to the main menu.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : CONFSEL │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If you are still in this menu, meaning that the user did not enter
anything at the prompt, then go right ahead to CONFSEL.
Yeah, a complex example that does not do much physically, yeah, I
know, but it demonstrates a lot, plus it shows some similarities
between high-level menu editing and assembly.
22.5: The Command Editor
The Command Editor is where the dirty work actually happens. It is
here that you design each level of your menus, from strings
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 97
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
displayed to commands processed, whether individual or stacked.
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Option Name : display info ansi │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -F │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : mustfill.inf │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════════════╛
Option A is the name of the option, as shown in generic menus
(and is generally for your own reference).
Option B is the access required to use this option. Any of the
ACS commands (see Section 2) are valid to use here.
Option C determines if the option name will be shown in the
generic menus.
Option D is the command key to be executed.
Option E is the key that the user must press to execute the
command. There are two other keys you can as well as any other
key on your keyboard:
FIRSTCMD Executed when the user first enters the menu and
before the prompt is even displayed.
EACH Executed after every command in the menu before
the prompt is displayed.
Option F is the command string or CString. Not all menu
commands use them, so look in the following sections for which
ones make use of it and which do not.
Option G is the Pulldown ID. This is used for pulldown menus
(see Section 22.2).
The following subsections deal with the different menu commands that
are used in the menu editor.
22.5.1: -? : Control Commands
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 98
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
These menu commands are miscellaneous control commands that can be
used in any menu anywhere on the system. They allow the sysop a
wide range of manipulation on how the system looks and reacts and
interfaces with the user and their account.
Command Key: -A
CString : <String to be displayed>
Function : Writes CString into the Header (use with stacking).
Command Key: -B
CString : <String to display when invalid command is entered,
blank if none>
Function : Set the Bad Prompt to CString.
Command Key: -C
CString : None
Function : Clears the FailFlag.
Command Key: -D
CString : ~ = .5 second delay; | = carriage return, ^X =
CTRL-X. Make sure to put the modem back into
online mode after executing this command, otherwise
the BBS will be hung. Use the ATO command to put
the modem into online mode. Also be sure to use
the escape code (+++) to put the modem into command
mode, or your commands won't get to the modem.
Function : Sends CString to the modem.
Command Key: -E
CString : <String to be displayed>
Function : Prints string with control (^) character support.
See Section 22.2 for the listing of control codes.
Command Key: -F
CString : <FILENAME[.EXT]>
Function : Displays a text or ansi file, where FILENAME.EXT is
a valid DOS filename and is located in the textfile
directory. [.EXT] may be omitted to turn on random
file selection (FILENAME.1 to FILENAME.255).
Command Key: -G
CString : <X,Y>
Function : Goes to the X,Y coordinates on the screen that are
specified by the CString.
Command Key: -H
CString : <number value>
Function : Gets string with hidden input, where the CString is
the maximum number of characters a user can enter.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 99
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: -I
CString : <number value>
Function : Gets string with normal (displayed) input, where
the CString is the maximum number of characters a
user can enter.
Command Key: -M
CString : <String to check>
Function : If the string entered with the -I or -H menu
commands is not the CString, the FailFlag is set to
true.
Command Key: -N
CString : <FILENAME.EXT>
Function : Displays FILENAME.EXT from the user's current
selected Status Screen Library.
Command Key: -J
CString : None
Function : If the sysop is available, the FailFlag is set to
false and if the sysop is not available, the
FailFlag is set to true.
Command Key: -K
CString : <Menu name>
Function : Changes starting menu to CString, so all -^
commands will set the fallback menu to the old
starting menu.
Command Key: -L
CString : None
Function : Clears the screen.
Command Key: -O
CString : <FILENAME.EXT>
Function : Display's FILENAME.EXT from the user's current
selected Menu Set Library.
Command Key: -P
CString : <X>
Function : Pauses for X number of seconds.
Command Key: -Q
CString : <Menu prompt #>
Function : Sets the current menu prompt number to the value in
the CString.
Command Key: -R
CString : None
Function : Prints a carriage return to the screen.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 100
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: -S
CString : <+/-><Flag letter>
Function : Changes user flags for the first user ACS flag set.
A "-" followed by the flag letters will turn those
flag letters off in the user's account. A "+" will
turn the following flags on.
Command Key: -T
CString : <#>
Function : Sets the current status screen library number to
the value in the CString.
Command Key: -V
CString : <#>
Function : Sets the current menuset library number to the
value in the CString.
Command Key: -U
CString : <Menu name>
Function : Sets the starting menu to the menu in the CString
and sets the fallback of all the menus called with
the -^ menu command to the menu in the CString.
Command Key: -W
CString : <String>
Function : Writes the text in the CString to the sysop logs.
This is a good command to use to keep track of the
actions of your sysops and co-sysops by stacking
it with other commands.
Command Key: -X
CString : <FILENAME.EXT>
Function : Returns FailFlag as true if the filename in the
CString does not exist.
Command Key: -Y
CString : <+/-><Flag letter>
Function : Changes user flags for the second user ACS flag
set. A "-" followed by the flag letters will turn
those flag letters off in the user's account. A
"+" will turn those flags on.
Command Key: -Z
CString : None
Function : Pauses all other commands until output (send)
buffer is empty.
This is a good command to use for things like
displaying a textfile before hanging up on a user.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 101
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Stack this command after the display textfile
command and before the hang up command.
Command Key: -1
CString : <+> or None
Function : Sets screen pausing on or off (this is the variable
a user determines in their user configuration). A
"+" will turn screen pausing on and anything else
will turn it off.
Command Key: -2
CString : <+> or None
Function : Suspends screen pausing until the next textfile
display. A "+" will suspend pausing and anything
else will return it to the default setting.
Command Key: -3
CString : <#>
Function : Adds the number of minutes specified by the number
in the CString to the user's time.
Command Key: -4
CString : <#>
Function : Removes the number of minutes specified by the
number in the CString from the user's time.
Command Key: -+
CString : None
Function : Displays a random WELCOME.x file from the textfile
directory.
Command Key: -|
CString : None
Function : Checks the user's infoforms to make sure that he
has filled out all of the mandatory infoforms. If
he has not filled one out, the system will force
the user to fill out the infoform he had not
previously filled out.
Command Key: -@
CString : None
Function : Displays the system notices.
Command Key: -_
CString : None
Function : Pages the sysop if the user has the Wanted flag
set. (The Wanted flag can be toggled for anyone's
account in the user editor. See Section 8.2.)
Command Key: -/
CString : <Menu name>
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 102
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Goes to the menu in the CString and sets the
fallback menu to the current menu.
Command Key: -\
CString : None
Function : Goes to the fallback menu and sets the fallback to
the previous fallback menu.
Command Key: -^
CString : <Menu name>
Function : Goes to the menu name in the CString and sets the
fallback to the starting menu.
Command Key: -{
CString : <Menu name>
Function : Goes to the menu specified in the CString, but will
not execute any FIRSTCMD statements.
Command Key: -}
CString : None
Function : Drops to the previous menu, but will not execute
any FIRSTCMD statements.
Command Key: -$
CString : <Menu name>
Function : Goes to the menu specified in the CString, keeping
the current fallback menu and will process FIRSTCMD
statements.
Command Key: -%
CString : <Menu name>
Function : Goes to the menu specified in the CString, keeping
the current fallback menu, but will not process
FIRSTCMD statements.
Command Key: -*
CString : <String>
Function : Sets the input variable usually inputted with the
-I and -H commands to the string in the CString.
Command Key: -=
CString : <Security level>
Function : Sets the current user's security level to the
security level specified in the CString. This can
be a potentially dangerous command if not used
correctly.
Command Key: -&
CString : None
Function : After the execution of an external program via door
commands, the errorlevel with which the external
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 103
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
program will be placed into the input string (the
same string set with the -I and -H menu commands)
and can be checked using the -M menu command.
Command Key: -(
CString : None
Function : Prints Prompt #1 (Press Enter) and waits for the
user to press enter.
Command Key: ->
CString : <Infoform set>
Function : Changes to the infoform set specified in the
CString.
Command Key: -;
CString : None
Function : Toggles locking of output to the modem. This
command must be used again to unlock the output to
the modem.
Command Key: -:
CString : None
Function : Toggles locking of input from the modem. This
command must be used again to unlock the input from
the modem. All characters that the user types are
stored in a buffer until after another -: command
is issued again.
Command Key: --
CString : None
Function : Displays and gets input in the same format as a
prompt string.
Command Key: -#
CString : <#>
Function : Sets the user's remaining time left to the value in
the CString.
Command Key: -!
CString : <String>
Function : Displays the current menu prompt using the CString
as the name in the prompt.
Command Key: -.
CString : <drive:\path\FILENAME.EXT>
Function : Sends the filename specified in the CString to the
user. This command will automatically check to
make sure the file is not in the menu or data
directories and will abort if it is.
Command Key: -<
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 104
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
CString : <Absolute prompt #>,<Other Text 1>φ<Other Text 2>
Function : Displays prompt string specified in the CString,
and will use Other Text 1 in place of |OT and Other
Text 2 instead of |O2 that were defined in the real
string. For example, instead of displaying the
time and number of downloads in a string, it could
be used to display anything you like. This will
override what Oblivion/2 usually fills those MCI
codes with, with your own text.
Command Key: -~
CString : <String> or None
Function : Sets the chat reason in the sysop's status bar to
the string in the CString. If the CString is
empty, the BBS removes the chat reason from the
status bar.
Command Key: -"
CString : None
Function : Sets the number of lines scrolled to 0. This is
used to stop the screen from pausing (if turned on
in the user's account) for another screenful of
text.
Command Key: -,
CString : <Pulldown ID>
Function : Sets the starting option in a pulldown menu to the
ID in the CString.
Command Key: -'
CString : None
Function : Turns on pulldown menu "re-entrance". This will
return the user to the selected option when the
user re-enters the pulldown menu. This will only
work if the command the user chose does not take
them to another menu. When a user chooses an
option that does not take them to a menu, upon
returning to the menu (ie. if the BBS swapped out
for a door game) the option they had just selected
will remain highlighted.
Command Key: -`
CString : None
Function : Turns off pulldown menu "re-entrance".
22.5.2: &? : MultiNode Commands
These menu commands are for use with multinode systems and allow
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 105
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
users to interact with other users on different nodes.
Command Key: &A
CString : None
Function : Asks user whether or not he wishes to be available
for multinode chat.
Command Key: &C
CString : None
Function : Enter multinode chat.
Command Key: &D
CString : <String>
Function : Changes the multinode activity in the logs to the
string specified in the CString.
Command Key: &F
CString : None
Function : Forces a user into multinode chat.
Command Key: &L
CString : None
Function : Views the log of a user on another node.
Command Key: &M
CString : None
Function : Sends a multinode message to a user on another
node.
Command Key: &N
CString : None
Function : Allows a user to kick a user off of another node.
Since this command has some power, it is best to
restrict it's use to sysops and co-sysops.
Command Key: &R
CString : None
Function : Allows user on current node to join multinode split
screen chat.
Command Key: &S
CString : None
Function : Views multinode status.
Command Key: &U
CString : None
Function : Sends a multinode message to all available nodes.
Command Key: &X
CString : <String>
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 106
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Sends the text in the CString as a multinode
message to all available nodes.
Command Key: &[
CString : None
Function : Sets user as available for multinode chat.
Command Key: &]
CString : None
Function : Sets user as unavailable for multinode chat.
22.5.3: {? : Matrix Commands
These menu commands are used to load the bbs or allow callers to
page the sysop or leave the sysop feedback without actually logging
into the system. A matrix is the menu that allows callers to either
log in or do different functions. It is similar to a frontend
system.
Command Key: {A
CString : None
Function : Applies as a new user. If the user completes the
application, the FailFlag is set to false,
otherwise it is set to true.
Command Key: {C
CString : None
Function : Checks user access. If the user is validated, the
FailFlag is set to false, otherwise it is set to
true.
Command Key: {D
CString : None
Function : If the user can logon with an account and password
and doesn't need the system password, the FailFlag
is set to false, otherwise it is set to true.
Command Key: {F
CString : <User number>
Function : Leaves feedback to the user number specified in the
CString.
Command Key: {G
CString : None
Function : Logs off of the matrix.
Command Key: {L
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 107
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
CString : <System password>,<Errorlevel>
Function : Launches an additional system. The system password
is the password the user needs to be dropped to the
other system, and the errorlevel is the errorlevel
Oblivion/2 will exit with (use in co-ordination
with the IF ERRORLEVEL commands in your batchfile).
Command Key: {P
CString : None
Function : Matrix chat.
Command Key: {S
CString : <#>
Function : Loads the main BBS system, where # is the number to
use for logins. For example, a CString of 5 would
show PRELOGON.5, SYSPASS.5, and USERLOG.5. This
can be used for enhanced matrix effects.
Command Key: {T
CString : <#>
Function : Sets the FailFlag to false if the user is able to
get to the main system through knowing the system
password and having an account. This could be used
for stacking commands at the matrix without
actually logging into the BBS. It uses the same
CString system as the {S menu command.
Command Key: {X
CString : None
Function : Drops into the BBS. This command should be used
with caution.
22.5.4: !? : Global Newscan Commands
These menu commands are used to newscan either message or file
conferences for new messages/files.
Command Key: !A
CString : None
Function : Newscans message and file conferences.
Command Key: !F
CString : None
Function : Newscans file conferences.
Command Key: !M
CString : None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 108
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Newscans message conferences.
22.5.5: .? : Door Commands
These menu commands are used to load up online door games or other
doors for the users to play or use. Please refer to OBV.FAQ for
information on how to setup doors with Oblivion/2.
Command Key: .E
CString : <FILENAME.EXT>
Function : Executes FILENAME.EXT in your main BBS directory
without creating a dropfile. The following percent
codes are valid:
%1 Connect rate
%2 User number
Command Key: .N
CString : <FILENAME.EXT>
Function : Creates a RBBS DORINFO1.DEF dropfile with COMO in
the dropfile if you are local and executes
FILENAME.EXT in the doors directory.
Command Key: .R
CString : <FILENAME.EXT>
Function : Creates a RBBS DORINFO1.DEF dropfile with LOCAL in
the dropfile if you are local and executes
FILENAME.EXT in the doors directory.
Command Key: .S
CString : <FILENAME.EXT>
Function : Creates a SRE DOOR.SR dropfile and executes
FILENAME.EXT in the doors directory.
Command Key: .T
CString : <FILENAME.EXT>
Function : Creates a standard DOOR.SYS dropfile (GAP,
Telegard, WildCat! v3.0, etc.) and executes
FILENAME.EXT in the doors directory.
Command Key: .U
CString : <FILENAME.EXT>
Function : Creates a standard DOOR.SYS dropfile (GAP,
Telegard, WildCat! v3.0, etc.) and executes
FILENAME.EXT in the doors directory. This
command is different from .T in that it will
read the DOOR.SYS file on return and adjust
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 109
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
user records accordingly. This is the command
you would use for CBV's, etc.
22.5.6: ^? : New User Voting Commands
These menu commands are used for New User Voting. If you do not
validate your users immediately upon application, they can be placed
into NUV where a select group of people with the proper access, or
all of your users, can vote on them as to whether they will receive
access to the system.
The ACS string for all NUV commands is as follows:
<NUV level>,<Yes votes>,<No votes>,<Success>,<Deny>,<Val>
where
NUV level The security level of users to be voted on.
Yes votes Number of yes votes needed for validation.
No votes Number of no votes needed for denial.
Success Security level given to validated users.
Deny Security level given to denied users.
Val Set to "+" to validate the user and give him the
default levels and flags.
For example:
10,20,15,50,1,+
would be:
Users with a security level of 10 are to be voted on; they need
20 votes of Yes to be validated or 15 votes of No to be denied;
they are given security level 50 if validated or security level
1 if denied; they will be given all the new user defaults as
defined in the Configuration (see Section 3.12).
Command Key: ^D
CString : None
Function : Begins new user voting without asking the user if
they would like to skip it.
Command Key: ^L
CString : None
Function : Lists the users that are currently in NUV.
Command Key: ^S
CString : <Q> or None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 110
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Asks the user if they would like to vote on any new
users. If "Q" is specified in the CString, the
users cannot quit NUV.
Command Key: ^Q
CString : None
Function : Goes through NUV without allowing the user to skip
a user or exit.
22.5.7: *? : Sysop Commands
This set of menu commands are all potentially dangerous commands if
used by the wrong people. Use them with caution. These are menu
commands that are reserved for sysops.
Command Key: *#
CString : None
Function : Enters the menu editor.
Command Key: *B
CString : None
Function : Allows the sysop to edit and view the system
Blacklist.
Command Key: *C
CString : None
Function : Enters the system configuration menu.
Command Key: *D
CString : None
Function : Enters the MiniDOS.
Command Key: *E
CString : None
Function : Enters the prompt editor.
Command Key: *I
CString : None
Function : Shows user infoforms.
Command Key: *K
CString : None
Function : Clears (resets) user infoforms.
Command Key: *L
CString : None
Function : Shows the sysop logs.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 111
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: *M
CString : None
Function : Allows the sysop to make a user.
Command Key: *P
CString : None
Function : Enters the protocol editor.
Command Key: *R
CString : None
Function : Enters the menu prompt editor.
Command Key: *S
CString : None
Function : Allows the sysop to edit and view either the
menuset libraries or the status screen libraries.
Command Key: *T
CString : None
Function : Runs the internal text editor.
Command Key: *U
CString : None
Function : Enters the user editor.
Command Key: *V
CString : None
Function : Enters the event editor.
Command Key: *X
CString : None
Function : Views the voting booth results.
Command Key: *Y
CString : None
Function : Enters the parameter editor.
Command Key: *Z
CString : None
Function : Enters the archiver editor.
22.5.8: +? : Color Setting Commands
These menu commands are used to set the user's color configuration.
The number defined in the CString is a value of 1 through 15 as they
correspond to the foreground color codes (ie. 15 is bright white).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 112
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: +1
CString : <#>
Function : Sets the user's regular color to the value in the
CString.
Command Key: +2
CString : <#>
Function : Sets the user's prompt color to the value in the
CString.
Command Key: +3
CString : <#>
Function : Sets the user's input color to the value in the
CString.
Command Key: +4
CString : <#>
Function : Sets the user's inverse color to the value in the
CString.
Command Key: +5
CString : <#>
Function : Sets the user's status color to the value in the
CString.
Command Key: +6
CString : <#>
Function : Sets the user's box color to the value in the
CString.
Command Key: +S
CString : None
Function : Sets the user's default color configuration to the
colors defined in the system configuration.
22.5.9: [? : Main Menu Commands
These menu commands are miscellaneous system commands that are
primarily used in the main menu but can be used for various
functions almost anywhere.
Command Key: [A
CString : None
Function : Edits the user's autosignature.
Command Key: [C
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 113
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
CString : <N> or <A>
Function : Pages the sysop to chat. A CString of "N" will not
ask for a chat reason, and a CString of "A" will
force the sysop to be available.
Command Key: [D
CString : <#>
Function : Makes the user fill out the infoform specified by
the CString (ie. a CString of 2 will force the user
to fill out INFOFORM.2).
Command Key: [F
CString : <Infoform#>,<Template>
Function : Fills out the infoform specified in the CString to
the template file specified in the CString. The
template format is a filename without an extension
or trailing period. For example, a CString of
"12,C:\APPS\OBVAPP" would fill out INFOFORM.12 and
write it to the textfile C:\APPS\OBVAPP.1, and the
next would be OBVAPP.2, and so on. You are not
limited to the traditional 5 infoforms with this
command, and can have the user fill out any
infoform from 1 to 999, as long as the filename is
INFOFORM and the extension is the infoform number.
Command Key: [G
CString : None
Function : Logs the user off of the system and displays
GOODBYE.ANS before disconnection.
Command Key: [H
CString : None
Function : Logs the user off of the system and does not
display GOODBYE.ANS.
Command Key: [I
CString : None
Function : Fills out infoforms and prompts user for which
infoform to fill out (1-5).
Command Key: [K
CString : <FILENAME.EXT>
Function : User configuration. With this command you can
create multiple "konfig" screens that the user can
use, using the same MCI codes as CONFSCR.ANS (the
default configuration screen, see Section 28.2).
These screens must be coded into your status screen
libraries (see Section 4.2).
Command Key: [L
CString : None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 114
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Displays a complete user list.
Command Key: [S
CString : None
Function : Displays system statistics. This command will
either display SYSSTAT.ANS (in the current status
screen library or the textfile directory) or else
display an internal display if no ansis are found.
Command Key: [U
CString : <Max total time> <Max day's deposit>
Function : Internal time bank. The maximum total time is the
maximum amount of time available for users to store
in the time bank, and the maximum day's deposit is
how much they can deposit per day.
Command Key: [V
CString : <#> or None
Function : Views the daily log where # is the amount of days
back to display. If the CString is left blank, the
entire system log is displayed.
Command Key: [W
CString : <1-20>
Function : Lists the last callers to the system, and can be in
the range of 1 caller through 20 callers.
Command Key: [X
CString : None
Function : Transfers to another user's account. This command
should be restricted to sysop's alone, as it allows
one user to (in essence) log off and log back in as
a different user with full use of their account.
Command Key: [Y
CString : None
Function : Displays the user's statistics (in the file
USERSTAT.ANS which is found in the status screen
libraries or the textfile directory).
Command Key: [+
CString : None
Function : Allows the user to change their password.
Command Key: [-
CString : None
Function : Forces the user to change their password.
22.5.10: C? : Conference Editor Commands
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 115
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
These menu commands allow you to edit and manipulate your message
and file conferences.
Command Key: CA
CString : None
Function : Adds a conference.
Command Key: CD
CString : None
Function : Deletes a conference.
Command Key: CE
CString : None
Function : Edits a conference.
Command Key: CI
CString : None
Function : Initializes the conference editor. This has to be
done before you can actually edit your conferences.
Command Key: CL
CString : None
Function : Lists all conferences.
Command Key: CR
CString : None
Function : Reorders the conferences.
Command Key: CT
CString : None
Function : Selects conference type (messages or files).
Command Key: CU
CString : None
Function : Lists users with access to a conference.
22.5.11: D? : Data Area Commands
These menu commands are used to manipulate the data areas. The data
areas are not unlike an online database that is completely
configurable to the sysop's tastes and can be used for many
different things. See Section 16 for more information on the data
areas.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 116
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: DA
CString : None
Function : Adds data to current data area.
Command Key: DD
CString : None
Function : Deletes data from current data area.
Command Key: DC
CString : None
Function : Edits data in current data area.
Command Key: DE
CString : None
Function : Edits selected data area.
Command Key: DF
CString : None
Function : Lists data in current data area without asking for
range limits.
Command Key: DG
CString : None
Function : Puts the current data area listing into a file and
if remote, will send it via file transfer. This
option would be equivalent to turning on your term
program's capture feature and listing the data
area.
Command Key: DK
CString : None
Function : Deletes selected data area.
Command Key: DL
CString : None
Function : Lists data in current data area with asking for
range limits.
Command Key: DM
CString : None
Function : Adds a data area.
Command Key: DR
CString : None
Function : Displays a random entry in the current data area,
using the list prefix followed by RAN.ANS. See
Section 28.3 for more information.
Command Key: DS
CString : None
Function : Shows a data entry in the current data area.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 117
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: D*
CString : <#> or None
Function : Changes to the data area specified in the CString
(by using the data area's ID number). If the
CString is blank, the user will be prompted for
which data area to select.
22.5.12: E? : Email Commands
These menu commands are used to read and write and otherwise
manipulate private email. Private email is messages that are
written directly to another user on the system, or written to a
group of users as defined in the Group Manager (see Section 17.2).
Command Key: EA
CString : None
Function : Sysop option to scan email. This will scan all
email, regardless of sender or receiver.
Command Key: EB
CString : None
Function : Looks in a user's mailbox to view email.
Command Key: ED
CString : <#> or None
Function : Deletes incoming email, where the number in the
CString is the email number to delete. If the
CString is blank, the user is prompted for which
piece of email to delete.
Command Key: EE
CString : <#> or None
Function : Edits outgoing email, where the number in the
CString is the email number to edit. If the
CString is blank, the user is prompted for which
piece of email to edit.
Command Key: EF
CString : <#> or None
Function : Forwards incoming email, where the number in the
CString is the email number to forward. If the
CString is blank, the user is prompted for which
piece of email to forward.
Command Key: EG
CString : None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 118
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Edits email groups. See Section 17.2 for more
information on email groups.
Command Key: EI
CString : None
Function : Lists incoming email.
Command Key: EK
CString : <#> or None
Function : Kills outgoing email, where the number in the
CString is the email number to kill. If the
CString is blank, the user is prompted for which
piece of email to kill.
Command Key: EL
CString : None
Function : Lists incoming and outgoing email. This command
would be the equivalent of stacking an EI menu
command with an EO menu command directly after it.
Command Key: EM
CString : None
Function : Memorizes email. Be sure to put the M! menu
command in the email menu or stacked in your logoff
commands so that the user can download the email
capture.
Command Key: EN
CString : None
Function : Scans for new email.
Command Key: EO
CString : None
Function : Lists outgoing email.
Command Key: EP
CString : <#> or None
Function : Replies to incoming email, where the number in the
CString is the email number to reply to. If the
CString is blank, the user is prompted for which
piece of email to reply to.
Command Key: ER
CString : <#> or None
Function : Reads incoming email, where the number in the
CString is the email number to read. If the
CString is blank, the user is prompted for which
piece of email to read.
Command Key: ES
CString : <#> or None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 119
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Sends email message, where the number in the
CString is the user number to whom the email should
be sent. If the CString is blank, the user is
prompted for which user he wishes to send email to.
Command Key: ET
CString : None
Function : Shows incoming/outgoing email information,
displaying the number of incoming email and the
number of outgoing email.
Command Key: EV
CString : <#> or None
Function : Views outgoing email, where the number in the
CString is the email number to view. If the
CString is blank, the user is prompted for which
piece of email to view.
Command Key: EX
CString : None
Function : Purges filemail older than the number of days
defined in the Configuration (Section 3.9).
Command Key: EY
CString : None
Function : Allows the user to read their email without it
being marked as read. (Also known as Spy Mail.)
Command Key: EZ
CString : None
Function : Packs email and physically removes all deleted
messages. It's best to do this every once in a
while to speed up email operations.
Command Key: E+
CString : None
Function : Allows user to read all mail. This command is used
with the Email Tag System (see Section 17.1).
Command Key: E-
CString : None
Function : Allows user to read only his own mail. This
commands is used with the Email Tag System (see
Section 17.1).
Command Key: E$
CString : <#>
Function : Sets the incoming email tag to the value in the
CString, where the valid range is 0 through 255.
Command Key: E#
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 120
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
CString : <#>
Function : Sets the outgoing email tag to the value in the
CString, where the valid range is 0 through 255.
22.5.13: F? : File Commands
These menu commands are used to list, view, and otherwise manipulate
the files that are on your board. They are primarily used in the
file menu.
Command Key: FA
CString : None
Function : Lists all file areas in the current conference but
does not prompt the user for which area to switch
to.
Command Key: FB
CString : None
Function : Enters the batch manipulation menu.
Command Key: FC
CString : <FILENAME> or <#> or None
Function : Changes files. If a filename is specified in the
CString, or a file number (of file in current
area), then that file will be edited, or the system
will prompt if the CString is blank.
Command Key: FD
CString : <FILENAME> or <#> or None
Function : Downloads files. If a filename is specified in the
CString, or a file number (of file in current
area), then that file will be downloaded, or the
system will prompt in the CString is blank.
Command Key: FE
CString : None
Function : Newscans the current file area.
Command Key: FF
CString : None
Function : Newscans all file areas in current conference.
Command Key: FG
CString : <Operation name>,<Batchfile>
Function : Custom File Operations. This command is used to
add functions not internally supported by
Oblivion/2. This command works via using DOS
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 121
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
batchfiles for manipulation. The custom file
operations menu command will create a list of files
that are in the user's batch queue with full drive
and pathnames, called FILELIST., which is found in
the work directory. The Operation Name in the
CString is used in prompt #XX (Enter up to 50 files
to <Operation Name>.). The batchfile then tells
the BBS which DOS commands to execute. An example
of a custom file operation is this: Perhaps you
have an artwork oriented board with a number of
ansis uncompressed in your file lists. The user
then tags which ansis he would like to download,
and then selects an option called "Zip Up" which
will zip up all of the ansis into one archive for
them to download (as opposed to them downloading 50
ansis). This is how it would be executed:
Command Key: FG
CString : Zip Up,ZIP.BAT
ZIP.BAT would look as follows:
@echo off
C:\OBV\PKZIP.EXE %1ZIPDANSI @%1FILELIST.
where %1 is the full drive and path of the work
directory. When expanded, the commandline of
ZIP.BAT would look like this:
C:\OBV\PKZIP.EXE C:\OBV\WORK\ZIPDANSI.ZIP
@C:\OBV\WORK\FILELIST.
Command Key: FI
CString : None
Function : Initializes the file areas in the selected file
conference. This command must be used before any
file manipulation or any file area listing.
Command Key: FK
CString : None
Function : User configurable file list configuration.
Command Key: FL
CString : None
Function : Lists files in the current file area.
Command Key: FM
CString : None
Function : Bi-Directional file transfers. Keep in mind that
for bi-directional file transfers, you must have a
program that will convert the protocol's log files
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 122
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
into a DSZ compatible log file format. The
filename it creates must be the same as the logname
defined in the Configuration (see Section 3.6) with
a U or D as the last character in the filename's
extension. For example, if the logname was defined
as C:\OBV\DSZLOG, the filename would have to be
C:\OBV\DSZLOG.1U or C:\OBV\DSZLOG.1D for uploads or
downloads, respectively.
Command Key: FN
CString : None
Function : Newscans file areas, and prompts user whether they
wish to scan all areas or only the current area.
Command Key: FO
CString : <FILENAME> or <#> or None
Function : Shows extended information on files. If a filename
is specified in the CString, or a file number (of
file in current file area), then that file's info
will be displayed, or the system will prompt if the
CString is blank.
Command Key: FP
CString : None
Function : Requests files, and will generate a sysop notice
for each file requested.
Command Key: FQ
CString : <+/-><Option number>
Function : This command is used to toggle options in the
user's file listing configuration. A "+" followed
by option numbers will turn those options on, while
a "-" will turn the following options off. Valid
options are:
0 Turns all options off.
1 Turns on file status.
2 Turns on file points.
3 Turns on file size.
4 Turns on file upload date.
5 Turns on file number of downloads.
6 Turns on file uploader.
7 Turns on file description
Command Key: FR
CString : <FILENAME> or <#> or None
Function : Resumes files. If a filename is specified in the
CString, or a file number (of file in current file
area), then that file will be resumed, or the
system will prompt if the CString is blank.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 123
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: FS
CString : <#> or None
Function : Selects file area from current file conference. If
the CString contains a number, then that file area
will be selected, otherwise the system will prompt
the user.
Command Key: FT
CString : <FILENAME> or <#> or None
Function : Types text files. If a filename is specified in
the CString, or a file number (of file in current
file area), then that file will be typed, or the
system will prompt if the CString is blank.
Command Key: FU
CString : <Blind> or None
Function : Uploads files. If the CString contains the word
"blind" then the system will not prompt for
filenames and descriptions until after the files
have been received, otherwise it will prompt first.
Command Key: FV
CString : None
Function : Views a list of files contained in an archive.
Command Key: FW
CString : None
Function : Lists users with access to the current file area.
Command Key: FX
CString : <FILENAME> or <#> or None
Function : Extracts files. If a filename is specified in the
CString, or a file number (of file in current file
area), then that file will be extracted, or the
system will prompt if the CString is blank. This
will extract files from an archive for user viewing
(ie. with the type files command).
Command Key: FY
CString : <FILENAME> or <#> or None
Function : Displays FILESTAT.ANS (user's file statistics
screen).
Command Key: FZ
CString : None
Function : Performs a key word or wildcard search for files.
Command Key: F[
CString : None
Function : Goes to previous file area.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 124
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: F]
CString : None
Function : Goes to next file area.
Command Key: F|
CString : <-> or None
Function : Generates a complete file list of all files listed
that the user has access to. If the CString
contains "-" then the output file will be strictly
ascii, if the CString is blank, the output file
will contain ansi codes.
Command Key: F=
CString : <Y/N> or None
Function : Toggles scrollable file listings. If the CString
is "Y" then scrolling listings are on, if the
CString is "N" then they are off. If the CString
is blank, it will toggle the listings (ie. if
scrolling is on and CString is blank, when selected
scrolling will be off).
Command Key: F+
CString : <FILENAME> or <#> or None
Function : Tags files. If a filename is specified in the
CString, or a file number (of file in current file
area), then that file will be tagged, or the system
will prompt if the CString is blank.
22.5.14: J? : Join Conference Commands
These menu commands are used to join different conferences, whether
they be message or file conferences.
You will need to understand one thing for these menu commands to
make sense to you. There are two "kinds" of conferences, relative
and absolute. Relative conferences are the number of conferences
that the user "sees", or has access to. If, for example, you have 5
file conferences, but a user only has access to 3 of them, he will
see conferences 1, 2, and 3 regardless of whether he may have access
to conferences 1, 3, and 5. Absolute conferences are those where
the conference number never varies. If the user does not have
access to a conference, he will be able to see it, whereas with
relative conferences he would not see it. A user might be able to
join a deleted conference if you use the absolute conference method.
Command Key: JF
CString : <#> or None
Function : Joins relative file conference in the CString or
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 125
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
the system will prompt if the CString is blank. If
the user presses "Q", the FailFlag will be set to
true, otherwise it will be false.
Command Key: JM
CString : <#> or None
Function : Joins relative message conference in the CString or
the system will prompt if the CString is blank. If
the user presses "Q", the FailFlag will be set to
true, otherwise it will be false.
Command Key: JS
CString : <Conference ID>
Function : Joins absolute message conference specified in the
CString.
Command Key: JT
CString : <Conference ID>
Function : Joins absolute file conference specified in the
CString.
22.5.15: M? : Message Commands
These menu commands are used for reading messages and manipulating
messages online. They are primarily used in your message menu.
Command Key: MB
CString : None
Function : Scans messages backwards by title.
Command Key: MC
CString : None
Function : Newscan configuration for the current conference.
This allows users to choose which message bases
will be included in their newscans and QWK packets
by using the spacebar to toggle areas.
Command Key: MD
CString : None
Function : Deletes a message.
Command Key: ME
CString : None
Function : Edits a message.
Command Key: MF
CString : None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 126
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Newscans all message bases in current conference.
Command Key: MG
CString : None
Function : Displays BCHANGE.ANS.
Command Key: MH
CString : <#>
Function : Selects message header where CString can be:
0 Internal header
1 External header (HEADER.ANS)
2 External header #1 (HEADER.1)
3 External header #2 (HEADER.2) etc...
The HEADER.ANS file is found in the status screen
libraries and the HEADER.x files can be found
either in the status screen libraries or the
textfile directory.
Command Key: MI
CString : <N> or None
Function : Initializes the message bases in this conference.
This command must be used before any base listing
or message reading commands. If the CString is "N"
then BCHANGE.ANS will not be displayed, otherwise
it will.
Command Key: MJ
CString : <T/F/D/I/X>
Function : Newscans message by type, but does not update
lastread pointers, where type is:
T To current user.
F From current user.
D After date.
I Containing certain information.
X Containing certain text.
Command Key: ML
CString : None
Function : Lists message bases in current conference.
Command Key: MM
CString : <#> or None
Function : Memorizes the message number in the CString, or
will prompt the user if the CString is blank.
Command Key: MN
CString : None
Function : Newscans message bases and prompts the user whether
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 127
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
they wish to scan all bases or only the current
base.
Command Key: MO
CString : <T/F/D/I/X>
Function : Newscans messages by type and will update the
lastread pointers. This command uses the same
CString format as the MJ command.
Command Key: MP
CString : None
Function : Posts a message.
Command Key: MR
CString : None
Function : Reads messages.
Command Key: MS
CString : <#> or None
Function : Selects the message base specified in the CString
or the system will prompt if the CString is blank.
Command Key: MT
CString : None
Function : Reads messages in the current base with reply
reading newscan (basically follows the reply
threads in a consecutive format in regards to
message titles).
Command Key: MU
CString : None
Function : Lists users with access to the current conference.
Command Key: MV
CString : None
Function : Reads messages in the current base with normal
reading newscan.
Command Key: MW
CString : <#> or None
Function : Scans message from the message number in the
CString (or system prompted user entry) for forward
title scanning.
Command Key: MZ
CString : None
Function : Scans for new system news (scans through all
mandatory message bases that the user has access
to).
Command Key: M[
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 128
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
CString : <N> or None
Function : Goes to the previous message base. If the CString
contains an "N" then BCHANGE.ANS will not be
displayed, otherwise it will. The FailFlag is set
to true if the user is at the first message base.
Command Key: M]
CString : <N> or None
Function : Goes to the next message base. If the CString
contains an "N" then BCHANGE.ANS will not be
displayed, otherwise it will. The FailFlag is set
to true if the user is at the last message base.
Command Key: M!
CString : None
Function : Downloads captured messages.
22.5.16: N? : Message Reading Commands
These commands are used within message reading. With these menu
commands, it is possible to create your own message reading or
message newscan sub-menus instead of using the internal one.
Command Key: N#
CString : <#>
Function : Reads the message number specified in the CString
in the current message base.
Command Key: NA
CString : None
Function : Reads the current message again.
Command Key: NB
CString : None
Function : Backwards thread of messages.
Command Key: ND
CString : None
Function : Deletes current message.
Command Key: NE
CString : None
Function : Edits the current message.
Command Key: NF
CString : None
Function : Reads messages with forward title scan (scans for
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 129
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
upcoming messages with a similar title) with
lastread pointer advance (updates lastread pointer
with each match).
Command Key: NG
CString : None
Function : Sets the lastread message pointer to the current
message.
Command Key: NI
CString : None
Function : Sets the FailFlag to true if the user is at the
last message in the current base.
Command Key: NL
CString : None
Function : Sets the FailFlag to true if the user is at the
last message base in the current conference.
Command Key: NM
CString : None
Function : Memorizes the current message.
Command Key: NN
CString : None
Function : Reads the next message in the current base.
Command Key: NO
CString : None
Function : Backward title scan from the current message in the
current base.
Command Key: NP
CString : None
Function : Private reply to the current message. Places the
reply in email.
Command Key: NR
CString : None
Function : Replies to the current message. Places the reply
in the current message base.
Command Key: NS
CString : <#> or None
Function : Sets the current message in single message reading
to the previous message if the current message
number is greater than the number specified by the
CString.
Command Key: NT
CString : None
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 130
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Forward title scan from the current message in the
current base.
Command Key: NU
CString : None
Function : Moves the reading pointer to the message that is
stored as the lastread message. This command will
begin the user reading at their lastread message.
Command Key: NX
CString : None
Function : Reads messages with backwards title scan (scans for
previous messages with a similar title) with
lastread pointer retreat (updates lastread pointer
with each match).
Command Key: NY
CString : None
Function : Returns the FailFlag if the current message base is
not in the user's newscan (by means of them
toggling the base off in their newscan
configuration).
22.5.17: Q? : QWKMail Menu Commands
These commands are used for QWK packet manipulation. A QWK packet
is an extraction of all the messages on the board that the user has
access to which is archived and sent to them so that they can read
it offline with an offline reader such as BlueWave.
Command Key: QD
CString : None
Function : Updates the lastread message number to the first
message after the date specified by the user (ie.
if the user specified 01/12/96, all messages
written previous to this date will be marked as
read, while messages written on and after this
date will be marked as unread).
Command Key: QL
CString : None
Function : Allows the user to edit the last QWK reply (.REP)
upload date.
Command Key: QM
CString : None
Function : Makes a QWK packet for the user. If the user
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 131
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
presses ESC twice during the creation process, it
will be aborted.
Command Key: QR
CString : None
Function : Allows the user to upload a QWK reply (.REP)
packet.
Command Key: QU
CString : None
Function : Updates the user's lastread pointers so that all
messages are marked as read. This command would be
a good one to force on new users when they first
logon the board so that they don't download a
massive QWK packet.
22.5.18: R? : Top Ten Listing Commands
These menu commands are used to display top ten listings to the
users.
For all of the top ten listing menu commands, there is a similar
feature in the CString for each command. If you place an * behind
the top ten header (as defined in the CString), the listing will not
pause and prompt for a return from the user. If the CString
contains only a header with no * at the end, the listing will prompt
for a return.
Command Key: RA
CString : <Header>
Function : Top ten list by best uploaders where the header in
the CString is the header to display in the list.
Command Key: RB
CString : <Header>
Function : Top ten list by worst uploaders.
Command Key: RC
CString : <Header>
Function : Top ten list by best downloaders.
Command Key: RD
CString : <Header>
Function : Top ten list by worst downloaders.
Command Key: RE
CString : <Header>
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 132
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Function : Top ten list by best post/call ratio.
Command Key: RF
CString : <Header>
Function : Top ten list by worst post/call ratio.
Command Key: RG
CString : <Header>
Function : Top ten list by best uploaders in Kbytes.
Command Key: RH
CString : <Header>
Function : Top ten list by worst uploaders in Kbytes.
Command Key: RI
CString : <Header>
Function : Top ten list by best downloaders in Kbytes.
Command Key: RJ
CString : <Header>
Function : Top ten list by worst downloaders in Kbytes.
Command Key: RK
CString : <Header>
Function : Top ten list by best message posters.
Command Key: RL
CString : <Header>
Function : Top ten list by worst message posters.
Command Key: RM
CString : <Header>
Function : Top ten list by best callers.
Command Key: RN
CString : <Header>
Function : Top ten list by worst callers.
22.5.19: S? : Message Base Sponsor Commands
These menu commands are basically sysop commands for message base
creation and manipulation. Access should only be given to sysops,
co-sysops, or message base sponsors.
Command Key: SC
CString : None
Function : Duplicates current message base to a new one.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 133
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: SE
CString : None
Function : Edits the current message base.
Command Key: SK
CString : None
Function : Deletes the current message base.
Command Key: SM
CString : None
Function : Creates a message base.
Command Key: SP
CString : None
Function : Packs the message bases. This is a useful command
to run every once in a while to keep the message
bases smaller.
Command Key: SR
CString : None
Function : Reorders the message bases.
Command Key: SX
CString : None
Function : Moves a message from one base to another base.
Command Key: S@
CString : None
Function : Toggles user access to all message bases.
22.5.20: T? : File Sponsor Commands
These menu commands are basically sysop commands for file base and
file creation/manipulation. Access should only be given to sysops,
co-sysops, or file sponsors.
Command Key: TA
CString : None
Function : Locally adds files to the file areas.
Command Key: TC
CString : None
Function : Cleans up offline files. Any files with a status
of offline (files that are listed but are not
physically present on the hard drive) will be
deleted from the file listings.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 134
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: TD
CString : <FILENAME> or <#> or None
Function : Deletes files from the file listings, where the
beginning file is the filename or file number (of
file in current file area) specified in the
CString, or the system will prompt if the CString
is empty.
Command Key: TE
CString : None
Function : Edits the current file area.
Command Key: TF
CString : <FILENAME> or <#> or None
Function : Moves files from one file area to another, where
the beginning file is the filename or file number
(of file in current file area) specified in the
CString, or the system will prompt if the CString
is empty.
Command Key: TH
CString : None
Function : Packs the file description file. This is a good
command to run every once in a while as the
descriptions of deleted files remain in the
description file until it is packed.
Command Key: TJ
CString : None
Function : If a file doesn't exist in the directory specified
by it's individual file record, this command will
change the file record directory to the directory
specified in the current base's configuration.
This command should be used when you want to move
an entire file area from one drive or directory to
another. Instead of editing each file's directory
or manually moving all of the files inside
Oblivion/2, simply move all of the files from the
old directory to the new directory, change the file
area's directory (in it's configuration), and then
run this menu command, and all of the files will
have their paths updated to the new directory.
Command Key: TK
CString : None
Function : Deletes the current file area.
Command Key: TM
CString : None
Function : Makes a new file area.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 135
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
Command Key: TN
CString : None
Function : Duplicates current file area to a new one.
Command Key: TP
CString : None
Function : Globally reassigns file points to the new value.
If, for example, the files in one file area were
worth 1 credit per 10k and you wanted to change it
to 2 credits per 10k, you could do it with this
command.
Command Key: TR
CString : None
Function : Reorders the file areas.
Command Key: TS
CString : None
Function : Sorts the files in the current file area according
to the area's configured sort method.
Command Key: TT
CString : None
Function : Tags all files that are physically missing from the
directory specified in it's individual file record
as offline, and any files previously with an
offline status that have been returned to the hard
drive will be tagged as available.
Command Key: TU
CString : None
Function : Globally uploads all files in directories specified
in the file area configuration that are not
currently in the file listing. This is only for
local files.
Command Key: TV
CString : None
Function : Validates new uploads that are not yet validated.
Command Key: T@
CString : None
Function : Toggles user access to all file areas.
Command Key: T+
CString : <#>
Function : Increases the user's file points by the value
specified in the CString.
Command Key: T-
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 136
Section 22 MENU EDITOR
────────────────────────────────────────────────────────────────────
CString : <#>
Function : Decreases the user's file points by the value
specified in the CString.
Command Key: T=
CString : <#>
Function : Sets the user's total file points to the value
specified in the CString.
22.5.21: V? : Voting Commands
These menu commands are used primarily in the voting menu to create,
list, respond to, and otherwise manipulate voting questions.
Command Key: VA
CString : None
Function : Adds a voting question.
Command Key: VC
CString : None
Function : Checks for unanswered mandatory voting questions.
Command Key: VD
CString : <#> or None
Function : Deletes the voting question specified in the
CString or the system will prompt if the CString is
empty.
Command Key: VL
CString : None
Function : Lists all voting questions the user has access to.
Command Key: VR
CString : <#> or None
Function : Answers the voting question specified in the
CString or the system will prompt if the CString is
empty.
Command Key: VS
CString : <#> or None
Function : Shows the results of the voting question specified
in the CString or the system will prompt if the
CString is empty.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 137
Section 23 FILE AREAS
────────────────────────────────────────────────────────────────────
Section 23: FILE AREAS
23.1: File Area Editor
The File Area Editor is where you would define your file areas for
your BBS. Remember, you can have 255 file areas per conference, and
255 file conferences. The File Area Editor looks similar to this:
╒══════════════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Area Editor │
╘══════════════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════════════╕
│ (A) Area Name : User Uploads │
│ (B) Access ACS : │
│ (C) Upload ACS : │
│ (D) Download ACS : │
│ (E) List ACS : │
│ (F) Sponsor : Lasher │
│ (G) Password : │
│ (H) Area File Name : uploads │
│ (I) Path : c:\uploads\ │
│ (J) Default Sort : F │
│ (K) File Area Mult : 1 │
│ (L) Free Area : No │
│ (M) Copy Files : No │
│ [,] Previous/Next Area │
╘══════════════════════════════════════════════════════════════════╛
Option A is the name of the current file area.
Option B is the access needed to be able to join the file area.
If a user does not have this access, they will not even be able
to select this area.
Option C is the access needed to upload to this area.
Option D is the access needed to download files from this area.
Option E is the access needed to list files in this area.
Option F is the file area sponsor. This would be like the
"sysop" of the file area. The person defined here has sysop
access for the current area alone.
Option G is the password needed to access the file area. If the
user does not know the password, they will be denied access.
Option H is the filename for the area. The filename is where
all the file information will be stored, so it should be unique
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 138
Section 23 FILE AREAS
────────────────────────────────────────────────────────────────────
for each area. The filename must not have an extension.
Option I is the path to the files for this file area.
Option J is the default sort method for this area where
F Filename
E Extension
Option K is the file area multiplier for file points for this
area. You may assign different file point "values" for each
file area. They follow the defaults specified in the system
configuration (see Section 3.8). This way, you can make files
cost more in one area than in another. If you set the value
here to 2, for example, files will cost twice as much as the
default (a file point multiplier of 2). If you want the area to
have the default values as specified in the system
configuration, leave this value at 1.
Option L defines if this file area is free or not. If Yes, all
files will have a credit and ratio cost of 0 and will not charge
the user for downloading. If No, the user will be charged
credit and ratio for downloading from this area.
Option M determines whether the files from this area will be
copied to the work directory before being downloaded, and if
they will be sent to the work directory before being copied to
the proper directory upon upload. This is primarily for CD-ROM
bases and should be used in multinode operations.
23.2: File Listing Prompt Commands
The file listing prompt has numerous commands that should be pointed
out to you. Below is a capture of all the commands available at the
file listing prompt:
[UP] Move Up File Bar
[DOWN] Move Down File Bar
[CR] Next Screen
[B] Go Back a Page
[+] Tag Current File
[-] UnTag Current File
[A] Add Tagged Files to Batch
[T] Type Tagged Files
[V] View Tagged Files
[I] Info on Tagged Files
[J] Quit Current Area
[?] Listing Help
[Q] Quit Listing
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 139
Section 23 FILE AREAS
────────────────────────────────────────────────────────────────────
UP - moves the highlight bar one file up (by use of the up
arrow key).
DOWN - moves the highlight bar one file down (by use of the down
arrow key).
CR - Displays the next screen of files in the current file
area.
B - Goes to the previous screen of files in the current file
area.
+ - Tags the file.
- - Untags the file.
A - Adds all of the tagged files from this screen to the
user's batch queue.
T - Types the tagged file (only if it is a textfile).
V - Views the tagged file. This will show an archive listing
of the contents of the tagged archive.
I - Shows information on the current file (using the
FILEINFO.ANS).
J - Quits current file area and will proceed to the next one
if used in global newscans.
? - Displays the internal file help (the above capture) or
the file FILEHELP.ANS if the option is turned ON in Look
and Feel in the System Configuration (see Section 3.4).
Q - Quits file listing, both for single listings and global
newscans.
23.3: The File Catalog
The file catalog is an indexing system that Oblivion/2 uses. The
file is called CATALOG. and it is stored in your data directory.
This file contains all of the filenames of the files on your system.
It can be used for numerous things, like quick file searches,
duplicate searches, etc.
In order to initialize the file catalog, you have to use the TG menu
command. This will, initially, create the file catalog, and
everytime afterwards that the TG command is issued, it will update
it.
You will need to modify some fields in the System Configuration,
primarily System Information 2 (see Section 3.2). The Use File
Catalog option must be set to Yes. This will enable Oblivion/2 to
use the catalog to check for duplicate files. The File Catalog Look
Up function should also be set to Yes, as this will allow Oblivion/2
to use the catalog for different lookup functions (ie. to see if a
file exists when a user enters a filename to add to their batch,
thus not requiring the user to be in the actual file area that
contains the file).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 140
Section 23 FILE AREAS
────────────────────────────────────────────────────────────────────
The file catalog is a handy little system to use, but you don't have
to use it. It will slow things down a little bit when searching for
files upon upload, but it also allows for some added features (like
the search feature explained above). It is in my opinion that every
sysop should use it, but again, it is personal preference and taste.
You should update your file catalog regularly to keep it accurate as
a system with heavy traffic where new files are uploaded daily will
have a quickly out-dated catalog. Running the TG command once a day
manually or as an event is a good idea if you use the file catalog.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 141
Section 24 THE UPLOAD CHECKER
────────────────────────────────────────────────────────────────────
Section 24: THE UPLOAD CHECKER
The upload checker is an integrated file testing system that
eliminates the need for clumsy third-party upload checkers. The
internal upload checker will perform the following on all new
uploads:
Check for CRC errors in the archive
Virus scanning
Check for definable age constraints
Add definable files to archives
Delete definable files from archives
Comment-stamp archives
Perform any other sysop-defined maintenance on archives
As you can see, it is a very powerful system. But it is also very
simple to use. It requires two things: A custom ansi screen and
the above options defined in the System Configuration (see Section
3.2 for information on the configuration). The custom screen, which
is called ULCHECK.ANS will be displayed to the user when their
upload is being processed. Creating this screen is simple, and
there are a few MCI codes that can be used when creating it.
|FN Name of the file being tested
|B1 Position of blinking ■ in CRC checking
|M1 String displayed during CRC checking (string number xxx)
|B2 Position of blinking ■ in virus scanning
|M2 String displayed during virus scanning (string number
xxx)
|B3 Position of blinking ■ in age testing
|M3 String displayed during age testing (string number xxx)
|B4 Position of blinking ■ in file deletion
|M4 String displayed during file deletion (string number
xxx)
|B5 Position of blinking ■ in file addition
|M5 String displayed during file addition (string number
xxx)
|B6 Position of blinking ■ in archive commenting
|M6 String displayed during archive commenting (string
number xxx)
|B7 Position of blinking ■ in additional file maintenance
|M7 String displayed during additional file maintenance
(string number xxx)
Each of the above aspects of the file checking displays a blinking
■, which is shown using the |Bx MCI code. When the operation is in
use, the ■ will blink, when it has been completed, the ■ stops
blinking, and the next one will begin to blink. The uploads are
checked in the above order, so each consecutive number in the MCI
codes relates to the order in which the maintenance is run. If one
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 142
Section 24 THE UPLOAD CHECKER
────────────────────────────────────────────────────────────────────
or more of the options are disabled, nothing is shown.
All of the commands for the upload checker are defined in System
Configuration 2, where each has it's own field (see Section 3.2).
If you do not want to perform a certain operation (for example,
adding files) leave that field in the config blank and the checker
will skip it.
The one aspect of the internal upload checker that makes it superior
to other upload checkers is the age constraint. With it, you can
pass or fail uploads depending on it's date. The checker will look
at the date of the NEWEST file in the archive and compare it to the
defined allowable age. If the file is older, the file fails the age
test, if it is of the same age or newer, the file is passed. This
can keep your system from receiving outdated files. The age
constraint can have a value of 0 through 5000 days, where 0 will
disable the age test and 5000 days is 13 years and 255 days (not
including leap years).
Another aspect of the internal upload checker that makes it unique
is it's ability to perform additional sysop-defined maintenance on
any archive or file uploaded. This maintenance is defined in a file
called MAINTAIN.BAT which you can use for any number of things. You
can convert archives, set file dates to the current date, etc. The
only thing you are limited by is your imagination and the batch
language of your operating system. The following two percent codes
can be used in your MAINTAIN.BAT file:
%1 filename
%2 path of the work directory
The %2 code also includes the trailing backslash so do not place a
%2\ in your batchfile.
Oblivion/2 allows for file descriptions of a maximum of 24 lines.
FILE_ID.DIZ files are imported automatically by the upload checker.
If, however, you want to import something different into the file
description field, you can use MAINTAIN.BAT to accomplish this.
Oblivion/2 will extract a FILE_ID.DIZ file to one called IMPORT.DES
in your work directory, and read IMPORT.DES for the description to
import. With this, you can extract any filename you wish, copy it
to IMPORT.DES, and have Oblivion/2 import it. Be careful with the
filename you use, however, as having Oblivion/2 import a binary file
could cause things to look a little ugly.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 143
Section 25 MESSAGE BASES
────────────────────────────────────────────────────────────────────
Section 25: MESSAGE BASES
25.1: Message Base Editor
[this section will be completed in Oblivion/2 2.40]
25.2: Using the JAM Message Base
New with Oblivion/2 v2.40 is the JAM base support. Previous
versions of Oblivion/2 used the old Fido/*.MSG system, which,
although a very workable and configurable system, left a lot to be
desired in terms of speed and space. The JAM system is much faster,
much smaller, and still very usable.
However, many sysops used to the old Fido/*.MSG system may find JAM
a little confusing, so I will try to explain a little bit about JAM
and it's uses here.
JAM was originally designed in 1993 by Joaquim Homrighausen, Andrew
Milner, Mats Birch, and Mats Wallin. The API for JAM is freely
available in a file called JAMAPI.* (ZIP, RAR, etc.). This is the
same system that Oblivion/2 is now using.
Many different Mail Tossers interface with JAM. In fact, most of
them do. I am currently using FastEcho to toss and scan my message
bases, and as such, I am going to use FastEcho as the main example
for this section. However, most, if not all, of what FastEcho can
do, other mail tossers (like GEcho, Squish, etc.) can do as well.
First, a little bit about the technical JAM stuff. A single JAM
message base consists of four files:
*.JDT - Message text data
*.JDX - Message index
*.JHR - Message header data
*.JLR - Lastread information
The JAM system is fast for one reason. Whenever you or a user posts
a message in a JAM base, depending on what kind of message base it
is (echomail or netmail, local bases have no bearing here), a file
will be written containing the name of the base and the number of
the newly written message in that base. If it's echomail, the file
will be called ECHOMAIL.JAM, and if netmail, NETMAIL.JAM. This
tells your mail processor which areas to scan. In this way, your
tosser will scan ONLY the bases that have a message to export. This
makes the system VERY fast. With the old Fido/*.MSG system, when
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 144
Section 25 MESSAGE BASES
────────────────────────────────────────────────────────────────────
mail needed to be exported, OBVMAIL.EXE would have to toss messages
from the message base into directories, and then your mail tosser
would have to scan all of the directories, checking pointer data,
and then package up the *.MSG files that needed to go out. In
essence, JAM takes these two steps and combines them into half a
step. On my system, with well over 200 message areas, it would take
approximately five minutes to package outbound mail, even if it was
only one small message. This is because OBVMAIL had to check each
message base to see if messages needed to be exported, export those
messages to a file in a directory, and then FastEcho would have to
scan every directory (over 200) and package the messages that needed
to go out. With JAM, the mail tosser will scan the bases specified
in ECHOMAIL.JAM and immediately package them. No need for hundreds
of directories, no need for an intermediate mail tosser. One mail
tosser, one single process.
Sounds nice doesn't it? Well, it is. But there are a few things
that should be noted, and for those of you experienced with JAM, you
can skip this. For those of you unaccustomed to JAM, or used to the
Fido/*.MSG style of messaging, read on.
As I stated before, my system had over 200 message areas. All of
these were stored in one directory. With JAM, you can specify any
directory you like where to put the bases. I would suggest,
however, that you pay careful attention to where you place your JAM
bases, and how many you place in one directory. Remember, each JAM
base consists of four files. I would advise not putting in more
than 20 bases in a directory. This is because of DOS's 100 file per
directory limitation. It's not really a limitation, but when you go
over 100 files in a directory, it really slows things down when
those files are being accessed. Try calling a DIR command in a
directory that contains 500 files as opposed to one containing 99
files. Which one takes longer to begin displaying the files? The
500 files directory. So make sure that you don't place more than 20
JAM bases in any one directory for optimum speed from your machine.
Another nice thing about JAM is the fact that it is such a standard.
Previously, the *.MSG files were tossed into a file that was
specific to Oblivion/2, thus cutting down on the use of third-party
utilities to manage your message bases. With JAM, you can use any
third-party utility that supports JAM that you like. This is useful
for maintenance on your JAM bases.
Let's take a look at your mail tosser. Most mail tossers have a
"sister" maintenance program. In FastEcho's case, it is a program
called FEUtil. I use FEUtil to manage my JAM bases. There are
quite a few different ways of purging your JAM bases. The following
is an excerpt from the FESETUP.EXE program, in regards to FEUtil's
parameters:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 145
Section 25 MESSAGE BASES
────────────────────────────────────────────────────────────────────
FESetup System Data Export Import
░░░░░░░░░░░░░┌────────────────────────┐░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ Network addresses │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ User names │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ Miscellaneous │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ Pathnames │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ Filenames │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ Parameters │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│ Advanced options │░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░│┌───── FEUTIL parameters ────┐░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░││ PURGE - Messages 150 │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░││ Days 14 │p 1.45a ░░░░░░░░░░░░░░░
░░░░░░░░░░░░░││ Rcvd Days 14 │░░░░░░░░░░░░░░░░░░░░░░░
░░░░ Copyrigh││ Use arrival date Yes │urchhardt. All rights r
░░░░░░░░░░░░░││ Autorenumber at 0 │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░││ Exclude Users Yes │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░└│ Exclude SysOps Yes │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░│ Include USERS.BBS Yes │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░│ Keep imported NetMail No │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░│ Kill grunged date No │░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░└────────────────────────────┘░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
As you can see above, you can purge the message bases accoriding to
the amount of messages, the amount of days old, or the amount of
days received. In the above FastEcho setup, messages in the JAM
bases would be deleted after 150 messages, OR if they were 14 days
old OR if they had been read by the recipient of the message 14 days
ago. In this manner, if mail took a long time to reach you and was
already 20 days old when it reached your system, it wouldn't be
deleted for 14 days after you read it, or until it was pushed out by
the maximum message limit, allowing you and your users time to read
it.
Of course, you might be asking yourself the question right now, What
about local message bases? You can use your mail tosser, in most
cases, to maintain your local JAM bases as well. Define your local
bases in your mail tosser's Area Manager in the same way as an
echomail or netmail message area, except the "type" of message base
will be Local, as opposed to Echomail, Netmail, Badmail, etc. This
will tell your mail tosser that the messages in this JAM base are
not to be exported, nor are messages to be imported to them. You
will need to define a few things, like area tag and a group, same as
any echomail area. Your best bet would be to make a Local Group
that you use only for local areas, and when defining the area tag,
make it something unique to your BBS so that you don't accidentally
choose a name that might be in use in an echomail network. For
example, for my BBS, Stronghold Enterprises, I might use SH_CHAT or
SE_CHAT or something similar for my local Chat base. Remember not
to define any connections or links to this area as this area will
not be exported. And it would be best to also make the group hidden
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 146
Section 25 MESSAGE BASES
────────────────────────────────────────────────────────────────────
or given a security level so that if any of your downlinks send a
%LIST meta-command to your AreaFix processor (%LIST tells AreaMgr to
send a list of available areas to the sender), they won't see your
local echos.
JAM is a very easy system to get accustomed to, and once you do, you
won't want to go back to anything else. Out of all the message
formats that are standards, JAM is by far one of the most superior.
With the variety of third-party utilities available for managing
your JAM bases, you'll be sure to find something that suits your
needs and something that you like.
25.3: Message Reading Prompt Commands
The message reading prompt has several commands that should be
pointed out to you. Below is a capture of all commands available
at thethe message reading prompt:
[A] Read Again [S] Backward Title Scan
[T] Forward Title Scan [B] Backwards Thread
[F] Moving For. T Scan [X] Moving Back. T Scan
[#] Goto Message # [CR,N] Next Message
[D] Delete Message [E] Edit Message
[P] Post Message [C] Remove
[R] Reply to Message [H] Go to Highest Message
[U] Edit Sender [V] Edit Receiver
[G] Store Thread [I] Store Replies
[M] Store Message [L] Set Last Read to Current
[J] Jump to next base [W] Private Reply
[Z] Move Message [Q] Quit
A - Displays the current message again.
T - Lists the next 23 messages, displaying their title, author,
and receiver.
F - Moves you to highest message shown with the T command.
# - Goes to message number #. A user could type in the number
203 and it will take them to message number 203.
D - Deletes the current message or restores the current
message if it is already deleted. Only available to sysops
and the authors of the current message.
P - Posts a new message.
R - Replies to the current message.
U - Edits the account of the sender of the message. Only
available to sysops.
G - Stores entire message thread for user download.
M - Archives the current message for the user to download
later.
J - Quits the current base and goes to the next base, only
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 147
Section 25 MESSAGE BASES
────────────────────────────────────────────────────────────────────
available in global newscans.
Z - Moves current message to another message base in any
conference and deletes the original. Only available to
sysops.
S - Lists the previous 23 messages, displaying their title,
author, and receiver.
B - Follows the current reply thread backwards to the first
message in the base with with this topic.
X - Moves to lowest message shown with the S command.
CR - Goes to the next consecutive message in the current base.
N - Goes to the next consecutive message in the current base.
E - Edits the current message. Only available to sysops and
the author of the message.
C - Removes the current message.
H - Goes to the highest message in the current message base.
V - Edits the account of the receiver of the message. Only
available to sysops.
I - Archives the current message and any further replies for
the user to download (like a memorize command).
L - Updates the lastread pointers to the current message.
W - Replies to the current message in email. Can only be used
if the author of the message is a member of the system.
Q - Quits reading, both for single message area reading and
global newscans.
The G and I commands can cause some systems to lock up. If you or
your users experience such lockups, disable the use of G and I
message reading commands in the Configuration (see Section 3.2).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 148
Section 26 MESSAGE EDITOR COMMANDS
────────────────────────────────────────────────────────────────────
Section 26: MESSAGE EDITOR COMMANDS
The FSE (FullScreen Editor) has many different commands that you can
use while you are in it. These commands are:
Menu Commands
/A Abort message
/C Continue message
/Q Quote from previous message
/S Save message
/U Import into message
/? Help (displays LINEMENU.ANS)
^KA Abort message
^KS Save message
Control Commands
Home Beginning of line
End End of line
^S/Left Move left
^D/Right Move right
^A Word left
^F Word right
^G/DEL Delete
BackSpace BackSpace
^Y Delete line
^N Insert line
^V Toggle insert
^QY Truncate line
^B Reformat paragraph
Info Commands
^O Toggle anonymous
^U Toggle autosig
^T Change title
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 149
Section 27 MAKING REPEAT ANSI SCREENS
────────────────────────────────────────────────────────────────────
Section 27: MAKING REPEAT ANSI SCREENS
In an effort to make Oblivion/2 more configurable, and at the same
time, easy to use, the "repeat method" of ansi display was
developed. These screens are used all around the BBS, and include
such things as message base/file area listings, oneliners, rumors,
last caller listings, data area listings, and more. Because they
are relied upon so heavily, it is important that you understand how
to create your own.
In the repeat method, there are three screens for any type of
listing. The first is the header, or "introduction", the second is
the actual repeating ansi that contains the data you want displayed,
and the third is the ending, or footer.
For example, to make a message base listing that looked similar to
this:
Base Description Network
─────────────────────────────────────────────────────
1 General Discussion ImpactNet
2 BBS Advertisements ImpactNet
─────────────────────────────────────────────────────
you would have to create three ansis called SUBSSRT.ANS (the header
of the subs listing), SUBSMID.ANS (the repeating ansi which can use
various MCI codes), and SUBSEND.ANS (the footer).
Below is what the ansis would look like (devoid of ansi codes):
SUBSSRT.ANS:
Base Description Network
─────────────────────────────────────────────────────
SUBSMID.ANS:
|AN |BN |NN
SUBSEND.ANS:
─────────────────────────────────────────────────────
As you can see, the repeat method of ansi display is one of the more
powerful aspects of Oblivion/2. However, due to several bugs and
incompatibilities in TheDraw you will need to make some manual
changes to the middle part of the ansi (*MID.ANS) before they will
display properly.
It should be noted, however, that although Oblivion/2 is primarily a
text-based BBS system, it does not rely on the ANSI.SYS device
driver to display ansi on the local end. Oblivion/2 has it's own
ansi driver, which makes ansi display faster and more reliable than
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 150
Section 27 MAKING REPEAT ANSI SCREENS
────────────────────────────────────────────────────────────────────
conventional ansi drivers. Oblivion/2's ansi driver is NOT subject
to ansi bombs or ansi redirection as it is it's own independant ansi
system. Your users, however, must load an ANSI driver in order for
ansi to be displayed to them.
To make your repeat ansi, first load TheDraw and draw your ansi.
When done, animate your ansi using the TOP rescan method (ALT-J, T).
Other scanning methods may work, but this is standard. Insert the
appropriate MCI codes and save the ansi.
Exit TheDraw and you can, optionally, run ANSITRAN.EXE on the ansi.
AnsiTran is a utility that will clean the ansi of unwanted escape
characters to make the ansi smaller and display faster, and also
makes it consistent with Oblivion/2's ansi displaying routines.
AnsiTran does not always do an excellent job of cleaning up ansis,
but since you are going to be hand-editing the ansi anyways, those
few instances where AnsiTran does not perform adequately, you should
be able to notice and fix it yourself manually.
To edit the ansi manually, load up QEdit or any other ASCII based
text editor. You will have to scan the ansi for some specific
codes, namely esc[yy;xxH. This code tells ANSI.SYS where to place
the next pieces of text on the screen (with x and y coordinates).
However, ANSI.SYS (and thus, TheDraw) do not support going to the
xxth column of the current row, which is what is needed for
Oblivion/2 to display the repeat ansis correctly. According to the
ANSI 3.64-1979 standard, esc[;xxH should go to the xxth column of
the first row, which is not what we want. Oblivion/2, however, will
interpret the esc[;xxH code differently, and will take it to read
the xxth column of the current row, thus making repeat ansis
possible. All you need to do is edit the esc[yy;xxH code and make
it an esc[;xxH code.
Having done this, your repeat ansi is ready for use. It may take a
while to become familiar with the ansi codes (see Section 29 for a
complete break-down of all the ansi escape sequence codes), but
after a while you will learn them and this procedure will become
routine. You may even prefer to do all of your MCI code placements
for all ansis this way.
An example of a middle repeat ansi, created for the oneliners,
follows. This example repeat ansi would look like this:
φ Here goes your oneliners... Column 79 -> φ
This is how TheDraw would save the animated middle ansi:
[255D [0B [255D [0;1;30mφ [77Cφ [2C [1A [0;32m|ON |0m
We would remove the esc[255D commands, as they move the cursor 255
columns to the left. Then we have a esc[0B, but since this moves
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 151
Section 27 MAKING REPEAT ANSI SCREENS
────────────────────────────────────────────────────────────────────
the cursor 0 rows down, we don't need it, so we can remove that as
well. The esc[77C command moves the cursor to the right 77 columns
to get to column 79 (after the φ character and a space are
displayed). We could also do this using a esc[;79H command, which
would be faster and more efficient, as it would move the cursor to a
FIXED position at column 79 and not move the cursor 77 spaces over
(which sometimes can prove inaccurate). Then we also notices an
esc[2C which moves the cursor two spaces over, causing it to wrap to
the next line to column 3. Then we see a esc[1A which moves the
cursor up one row to put |ON after the space that follows the φ
character. All of this is inefficient, slow, and sloppy. Using
some simple command changes, we can make the above piece of ansi
code look like this:
[0;1;30mφ [;79Hφ [;3H [0;32m|ON [0m
Much smaller, much more compact, a lot faster to display. What this
does is this:
[0;1;30m Changes the color to light black (esc[0m turns off
all special attributes, esc[1m turns on high
intensity, and esc[30m turns the color to black).
[;79H Moves the cursor to a fixed position at column 79.
[;3H Moves the cursor to a fixed position at column 3.
[0;32m Changes the color to dark green (esc[0m turns off
all special attributes, esc[32m turns the color to
green).
This smaller piece of ansi code will be displayed FAR faster than
the monstrous amount of code TheDraw generated, and they do exactly
the same thing. The |ON in the ansi code will be padded out to the
oneliners string.
As you can see, the system is very easy to use and can be very
versatile. Please note that each listing has it's own MCI code set
that can be used in it. In the data areas, you can define your own
MCI codes, but in some of the repeat method ansis that are built
into the BBS, there are only a few MCI codes that can be used (see
Section 28.1 for a full list).
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 152
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
Section 28: MAKING STANDARD ANSI SCREENS
When making your own custom animated statistic screens, such as a
new User Statistics screen, there are a few general rules that must
be followed. All screens should be made according to these rules so
that you don't run into any problems with Oblivion/2 displaying them
(this is due to it's internal ansi driver).
The following are the instructions on making animated status
screens that do not have COMPLEX animation in them (ie. moving
blocks, etc.):
Step 1: Draw your basic screen.
Step 2: Put TheDraw into animation mode (press ALT-J). When
prompted for the scanning method, select TOP.
Step 3: Insert the appropriate MCI codes. Some screens use |xx
codes, while others use %xx codes. Be sure you are
using the right ones.
Step 4: After you've finished adding the MCI codes, save the
screen to an ansi file. Select Clear Screen and the
line length to 255. Others will work, but you risk
having your MCI codes go from one line to the next (ie.
%F on one line of text with a save cursor marker behind
it and then the next line beginning with a restore
cursor marker and finishing by placing an M behind it
(esc[u). If Oblivion/2 comes across a split code like
that, it will not process it as it must read the MCI
code %FM directly from the text, uninterrupted, and 255
line length (or unlimited line length) reduces the
chances of cutoff MCI codes.
If your MCI codes are out of place, it is because of one of two
reasons. The reason explained above in Step 4, or else you used a
|xx code instead of a %xx code, and vice versa. The problem in Step
4 can be corrected, however, using AnsiTran (see Section 4.8). It
will remove the padding TheDraw put in the MCI code using the save
cursor (esc[s) and restore cursor to saved position (esc[u)
commands.
28.1: Standard MCI Codes
The following MCI codes can be used in virtually any ansi you
display on your BBS. These are all %xx codes.
%UN User's handle
%RN User's real name
%UU User's user number
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 153
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
%PN User's phone number
%AD User's address
%LO User's location
%UC User's User Note
%UL User's security level
%FL User's file level
%FP User's file points
%UK User's uploaded Kbytes
%DK User's downloaded Kbytes
%UP User's number of uploads
%DN User's number of downloads
%PS User's number of message posts
%CS User's number of calls
%TL User's time left today
%TT User's daily time limit
%CR User's connect rate
%SS User's current status screen library name
%MS User's current menu library name
%PC User's post/call ratio
%NR User's upload/download ratio
%KR User's upload/download Kbyte ratio
%LD Date that user was last on the system
%DU Days until expiration of user's account
%NF New files
%NP New posts
%LC Name of the last caller to the system
%TC Total calls to the system
%CT Calls today
%FT Files uploaded or added today
%PT Messages posted today
%NT New users today
%BN BBS name
%SN Sysop name
%DT Current date
%TM Current time
%CA Current file area
%CB Current message base
%CF Current file conference
%CM Current message conference
%NN Current node number
%VN Oblivion/2 version number
%VD Oblivion/2 version date
%TF Total files on the system
%TP Total posts on the system
%CE Current message number (only activated when used with NX
menu command)
%PF Turns screen pausing off temporarily
%PO Turns screen pausing back on (provided user had screen
pausing enabled in their account previously).
%PA Prompts for user to press enter
%UA Makes anything below it unabortable by spacebar (use
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 154
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
this code to force users to view certain screens)
28.2: Status Screen Library Ansis
AREASTAR.ANS - File Area Listing Header
AREAMID .ANS - File Area Listing Middle (Repeat)
|AN File area number
|AI File area name
|AS File area sponsor
AREAEND .ANS - File Area Listing Footer
BCHANGE .ANS - Message base changing ansi
|SN Current base name
|SS Current base sponsor
|NM Number of messages in current base
|UP Number of posts current user made (total)
|LR Last read message by current user
|DT Current date
|TI Current time
CONFSCR .ANS - User Configuration Screen
|CB Color bar start
|RC User's regular color
|PC User's prompt color
|IC User's input color
|VC User's inverse color
|SC User's status color
|BC User's box color
|FS Full screen editor toggle
|DP Screen pausing toggle
|RR Reply reading toggle
|RM Redisplay messages toggle
|YN Yes/No bar toggle
|SF Scrollable file lists toggle
|PL Page length
|EP Emulation (Ansi/Avatar)
|AD User's address
|LC User's location
|UN User's user note
|CA User's selected archiver type
|CP Current prompt name
|CM Current menuset name
|CS Current status screen set name
&xy Sysop definable configuration options (where x=user
flag (first set) and y=key to toggle flag
active/inactive)
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 155
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
DAILYSRT.ANS - Daily Log Header
DAILYMID.ANS - Daily Log Middle (Repeat)
|DT Date
|NP New posts
|NF New files
|NC Number of calls
|TU Time used
|NU New users
DAILYEND.ANS - Daily Log Footer
EMAILHDR.ANS - Email Header
|FM User email is from
|DT Current date
|TI Current time
|ST User email is sent to
|UN Sender's user note
|TL Email title
FCONFIGS.ANS - File Listing Configuration Screen
|O1 Option 1 - Status of file (free, offline, etc.)
|O2 Option 2 - File points
|O3 Option 3 - File size
|O4 Option 4 - Date uploaded
|O5 Option 5 - Number of downloads
|O6 Option 6 - Name of uploader
|O7 Option 7 - File description
|US Number of used characters
|EX Example of listing
FHEADER .ANS - File Listing Header
|FH Line of information
FILEINFO.ANS - File Information Screen
|FN Filename
|UL Uploader's name
|FP File points the file is worth
|TD The amount of times the file has been downloaded
|SK File size in bytes
|FK File size in Kbytes
FILESTAT.ANS - User's File Statistics
Standard Codes
FSEHEAD .ANS - Full Screen Editor Header
|TI Title of message
|ST Who the message is sent to
|AN Anonymous toggle (on/off)
|AU Autosig toggle (on/off)
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 156
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
|DT Current date
|TI Current time
GENSRT .ANS - Generic Menu Template Header
|TI Menu title
GENMID .ANS - Generic Menu Template Middle (Repeat)
|Kx Keys for option x in the line
|Dx Description for option x in the line
GENEND .ANS - Generic Menu Template Footer
(for more info on Generic Menus, see Section 19)
HDR .ANS - Header
|HM Header message
|CH Header message (centered)
|LH Repeats the next character (directly after the code)
for as many characters as there are in the header
message
|CC Repeats the next character (directly after the code)
for as many characters as are needed such that four |CC
and |HM fill an 80 character line
HEADER .ANS - Message header
|BN Current base name
|RT Message to which current is a reply
|MN Current message number
|OU Total messages in current base
|TL Title of message
|UN Poster's user note
|FM Poster's name
|DT Date current message was posted
|TI Time current message was posted
|TO Who the message is sent to
|ST Status of message (echomail, received, etc.)
INCSRT .ANS - Incoming Email Header
INCMID .ANS - Incoming Email Middle (Repeat)
|NU Email number
|TI Email title
|ST Email status (new/old)
|FM Name of whom the email is from
INCEND .ANS - Incoming Email Footer
LASTSRT .ANS - Last Callers Header
LASTMID .ANS - Last Callers Middle (Repeat)
|UH User's handle
|DO Date on
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 157
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
|TO Time user logged in
|BR Connected baud rate
|NN Node number
LASTEND .ANS - Last Callers Footer
NEWSHEAD.ANS - News Header
|BN Base name
|RT Message to which current is a reply
|MN Message number
|OU Total messages
|TL Title
|UN Poster's note
|FM Poster's name
|DT Date posted
|TI Time posted
|TO Sent to
|ST Status
OUTSRT .ANS - Outgoing Email Header
OUTMID .ANS - Outgoing Email Middle (Repeat)
|NU Email number
|TI Email title
|ST Email status (new/old)
|TO Name of who the email is addressed to
OUTEND .ANS - Outgoing Email Footer
PROxSRT .ANS - Protocol Listing Header
PROxMID .ANS - Protocol Listing Middle (Repeat)
|KE Key to activate protocol
|DE Protocol description
PROxEND .ANS - Protocol Listing Footer
where x is one of the following:
1 Download protocols
2 Upload protocols
3 Batch download protocols
4 Batch upload protocols
5 Resume protocols
6 Bi-directional protocols
(PROT1SRT.ANS, PROT1MID.ANS, and PROT1END.ANS would all be
needed for a download protocol listing).
STATUS .ANS - User's Statistics
Standard Codes
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 158
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
SUBSSTAR.ANS - Message Base Listing Header
SUBSMID .ANS - Message Base Listing Middle (Repeat)
|AN Base number
|BN Base name
|SS Base sponsor
SUBSEND .ANS - Message Base Listing Footer
TOP-xx .ANS where xx is one of the following:
TOP-1.ANS - Top ten best uploaders
TOP-2.ANS - Top ten worst uploaders
TOP-3.ANS - Top ten best downloaders
TOP-4.ANS - Top ten worst downloaders
TOP-5.ANS - Top ten best post/call ratio
TOP-6.ANS - Top ten worst post/call ratio
TOP-7.ANS - Top ten best uploaders in K
TOP-8.ANS - Top ten worst uploaders in K
TOP-9.ANS - Top ten best downloaders in K
TOP-10.ANS - Top ten worst downloaders in K
TOP-11.ANS - Top ten best message posters
TOP-12.ANS - Top ten worst message posters
TOP-13.ANS - Top ten best callers
TOP-14.ANS - Top ten worst callers
All of the TOP-xx.ANS files share the same MCI codes:
|TN Top ten name
|N1 User name for position 1
|V1 Value for user 1
|B1 Bar for user 1
|N2 User name for position 2
|V2 Value for user 2
|B2 Bar for user 2
|N3 User name for position 3
|V3 Value for user 3
|B3 Bar for user 3
|N4 User name for position 4
|V4 Value for user 4
|B4 Bar for user 4
|N5 User name for position 5
|V5 Value for user 5
|B5 Bar for user 5
|N6 User name for position 6
|V6 Value for user 6
|B6 Bar for user 6
|N7 User name for position 7
|V7 Value for user 7
|B7 Bar for user 7
|N8 User name for position 8
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 159
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
|V8 Value for user 8
|B8 Bar for user 8
|N9 User name for position 9
|V9 Value for user 9
|B9 Bar for user 9
|N0 User name for position 10
|V0 Value for user 10
|B0 Bar for user 10
USERSTAR.ANS - User Listing Header
USERMID .ANS - User Listing Middle (Repeat)
|UH User's handle
|LE User's security level
|UN User note
|AC User's area code
|LC User's last call
USEREND .ANS - User Listing Footer
USERSTAT.ANS - User's Statistics
Standard Codes
QWKDN .ANS - QWK Download Packet/Archive Packet Screen
|L1 Light 1 - Creating control file (all "light" ansis will
blink a ■ when they are processing and will stop
blinking when the current operation is finished)
|L2 Light 2 - Creating door information file
|L3 Light 3 - Conference
|L4 Light 4 - Message base
|L5 Light 5 - Post information
|L6 Light 6 - Archiving mail packet
|CP Current conference number
|BP Current message base
|TP Total posts in message base
|NP Total new posts in message base
|EP End placement marker (this is where the cursor will go
when everything is done and the QWK packet is ready to
be downloaded)
|B1 Location of bar (the color of this code will determine
the color of the blocks as they fill in)
|B2 Background bar color (the color of this code will
determine the background color of the bar)
QWKUP .ANS - QWK Upload (REP) Packet/Processing Screen
|BP Message base
|SP Who message was sent to
|TI Title of message
|OP Operation message (ie. echomail posted, etc.)
ZIPHEAD .ANS - Internal ZIP viewer header
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 160
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
[Uses the same codes as HDR.ANS]
28.3: Miscellaneous Ansis
SYSPASS.ANS - System Password Screen
|PP Place to prompt for password
|BP Place to display bad password message (String ***)
USERLOG.ANS - User Login Screen
|NP Place to prompt for user name
|PP Place to prompt for user password
|QP Place to display quick login message (String ***)
|IP Place to display error message (String ***)
The following screens use the standard %xx MCI codes:
EXPIRED .BBS - File is displayed to user when their account has
expired.
BLACKLST.ANS - File is displayed to users in the Blacklist. A %OT
MCI code will show the user when they can next apply
(immediate/date/never).
ENOUGH .ANS - File is displayed to user when he/she has paged more
than the specified amount of times.
GOODBYE .ANS - Shown to user when logging off.
KICK-OFF.ANS - File is displayed to user when sysop nukes him with
the ALT-Q command.
LINEMENU.ANS - Help screen for the Line Editor.
NOTLEFT .ANS - File is displayed to user when he/she has used all of
their time.
NUVDOWN .ANS - File is displayed to user when he/she has been turned
down by the New User Voting committee.
PRELOGON.ANS - Prelogon screen.
SLOWBAUD.ANS - File is displayed to users who are calling in at a
baud rate too slow for the system and who do not know
the slow-baud lockout password.
SYSSTAT .ANS - System statistics screen.
TOONODE .ANS - File is displayed to a user trying to login while
already on another node.
ULCHECK .ANS - Upload checker display ansi.
DONE .APP - File is displayed to user when he/she has finished
applying.
LETTER .APP - File is displayed to user before he/she is prompted
to send a new user letter to the sysop during the
application.
NUPBAD .APP - Displayed to users who do not know the New User
Password.
PRINT .APP - Displayed to users before they begin applying.
CHECKED .xxx - Displayed to a user who is checking for access, but
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 161
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
has a security level less than 0 where xxx is the
level less than 0 that the user has (ie. CHECKED.1
would be displayed to user with a security level of
-1).
SUBS .xxx - Shown to user when viewing message base listing where
xxx is the conference ID, external listings are on,
but the repeat method is disabled.
WELCOME .xxx - Welcome screen (rotates; where xxx=1-999).
XFER .xxx - Shown to user when viewing file area listing where
xxx is the conference ID, external listings are on,
but the repeat method is disabled.
28.4: File Description MCI Codes
The following MCI codes can be used in the file description fields
in the File Configuration in the System Config (see Section 3.8).
|TC Archive size uncompressed
|CC Archive size compressed
|UL Uploader's name
|UD Date of upload
|TM Time of upload
|DD Date of FILE_ID.DIZ
|ND Newest file date
|OD Oldest file date
28.5: Color MCI Codes
The following are all of the color MCI codes that Oblivion/2
supports. Namely these are the standard pipe color codes and the
PCBoard color codes.
In the foreground box below, the first codes are the low intensity
colors while the second codes are the high intensity (bright)
colors. All of these codes are in the form |xx where xx is one of
the codes below:
Foreground Background
┌──────┐ ┌──┐
Black │00 08│ │16│
Blue │01 09│ │17│
Green │02 10│ │18│
Cyan │03 11│ │19│
Red │04 12│ │20│
Magenta │05 13│ │21│
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 162
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
Brown │06 14│ │22│
White │07 15│ │23│
└──────┘ └──┘
The color sequence indicator for the PCBoard color codes is @X,
followed by a two digit code: 0-F, to form the color code. The
color chart below is for the PCBoard color code set, and the codes
are listed together, low intensity and high intesity. The top row
of colors are foreground colors, while the colors listed on the
left-hand column are background colors. All of these codes are in
the form @Xxx where xx is one of the codes listed below:
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 163
Section 28 MAKING STANDARD ANSI SCREENS
────────────────────────────────────────────────────────────────────
Regular colors:
Black Blue Green Cyan Red Mag. Brown White
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
Black │00 08│01 09│02 0A│03 0B│04 0C│05 0D│06 0E│07 0F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Blue │10 18│11 19│12 1A│13 1B│14 1C│15 1D│16 1E│17 1F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Green │20 28│21 29│22 2A│23 2B│24 2C│25 2D│26 2E│27 2F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Cyan │30 38│31 39│32 3A│33 3B│34 3C│35 3D│36 3E│37 3F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Red │40 48│41 49│42 4A│43 4B│44 4C│45 4D│46 4E│47 4F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Magenta │50 58│51 59│52 5A│53 5B│54 5C│55 5D│56 5E│47 5F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Brown │60 68│61 69│62 6A│63 6B│64 6C│65 6D│66 6E│67 6F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
White │70 78│71 79│72 7A│73 7B│74 7C│75 7D│76 7E│77 7F│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
Blinking colors:
Black Blue Green Cyan Red Mag. Brown White
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
Black │80 88│81 89│82 8A│83 8B│84 8C│85 8D│86 8E│87 8F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Blue │90 98│91 99│92 9A│93 9B│94 9C│95 9D│96 9E│97 9F│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Green │A0 A8│A1 A9│A2 AA│A3 AB│A4 AC│A5 AD│A6 AE│A7 AF│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Cyan │B0 B8│B1 B9│B2 BA│B3 BB│B4 BC│B5 BD│B6 BE│B7 BF│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Red │C0 C8│C1 C9│C2 CA│C3 CB│C4 CC│C5 CD│C6 CE│C7 CF│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Magenta │D0 D8│D1 D9│D2 DA│D3 DB│D4 DC│D5 DD│D6 DE│D7 DF│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
Brown │E0 E8│E1 E9│E2 EA│E3 EB│E4 EC│E5 ED│E6 EE│E7 EF│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
White │F0 F8│F1 F9│F2 FA│F3 FB│F4 FC│F5 FD│F6 FE│F7 FF│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 164
Section 29 FUNCTIONS OF ANSI.SYS
────────────────────────────────────────────────────────────────────
Section 29: FUNCTIONS OF ANSI.SYS
The ANSI escape codes for screen control supported by the MS-DOS
ANSI.SYS device are a subset of the ANSI 3.64-1979 standard. They
are used by Oblivion/2 to manipulate screen information, primarily
cursor position and color changes.
An escape code consists of two segments of data: (1) an identifier
(the esc[ part, esc being the ASCII char AltGr-27 or 1Bh) and (2)
the control code, the actual command to perform on the cursor or
screen. Thus, all ANSI codes begin with esc[ and end with a code.
All codes supported by ANSI.SYS are listed below, the identifier
included, with a short description of it's use.
Note that case is significant for the last character in an escape
sequence and that numbers must always be represented as ASCII digit
strings, not as their binary values. Also note, that cursor
positions are one-based, making 1,1 upper left corner (and not 0,0).
(A separate set of escape sequences supported by ANSI.SYS, but not
compatible with the ANSI standard, may be used for reprogramming and
remapping the keyboard. These are not supported by Oblivion/2).
═══════════════════════════════════════════════════════════════════
Escape
Sequence: Meaning:
═══════════════════════════════════════════════════════════════════
Esc[2J Clear screen. Place cursor in upper left corner
(home position).
Esc[K Clear from cursor to EOL.
───────────────────────────────────────────────────────────────────
Esc[row;colH Position cursor. (Row is the y coordinate in the
range of 1-25 and col is the x coordinate in the
range of 1-80 for 80-by-25 text display modes).
Escape sequences terminated with the letter f
instead of H have the same effect. (Esc[H will
home cursor).
*NOTE* Since ANSI.SYS doesn't support "go to X column in
current row", and thus TheDraw doesn't add that
code in, Obv/2 uses it's own. Esc[;xxH should go
to XXth column in first row, but for middle in
the repeat ansis (and only middle in the repeat
ansis), it goes to the XXth column in the current
row. You therefore need to edit your repeat ansi
in an ascii editor when you've finished the
middle part. See Section 27 about repeat ansis
for more information.
───────────────────────────────────────────────────────────────────
Esc[nA Move cursor up n rows.
Esc[nB Move cursor down n rows.
Esc[nC Move cursor right n rows.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 165
Section 29 FUNCTIONS OF ANSI.SYS
────────────────────────────────────────────────────────────────────
Esc[nD Move cursor left n rows.
Esc[s Save current cursor position.
Esc[u Restore cursor to saved position.
Esc[6n Return current cursor position on the standard
input handle in the format esc[row;colR.
───────────────────────────────────────────────────────────────────
Esc[nm Select character attributes (values for n):
0=no special attributes
1=high intensity
2=low intensity
3=italic
4=undeline
5=blink
6=rapid blink
7=reverse video
8=concealed text (no display)
30=foreground black
31=foreground red
32=foreground green
33=foreground yellow
34=foreground blue
35=foreground magenta
36=foreground cyan
37=foreground white
40=background black
41=background red
42=background green
43=background yellow
44=background blue
45=background magenta
46=background cyan
47=background white
═══════════════════════════════════════════════════════════════════
Esc[=nh Select display mode (values for n):
0=40-by-25, 16-color text (color burst off)
1=40-by-25, 16-color text
2=80-by-25, 16-color text (color burst off)
3=80-by-25, 16-color text
4=320-by-200, 4-color graphics
5=320-by-200, 4-color graphics (color burst off)
6=620-by-200, 2-color graphics
───────────────────────────────────────────────────────────────────
14=640-by-200, 16-color graphics (EGA and VGA)
15=640-by-350, 2-color graphics (EGA and VGA)
16=640-by-350, 16-color graphics (EGA and VGA)
17=640-by-480, 2-color graphics (MCGA and VGA)
18=640-by-480, 16-color graphics (VGA)
19=320-by-200, 256-color graphics (MCGA and VGA)
Escape sequences terminated with l instead of h
have the same effect
───────────────────────────────────────────────────────────────────
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 166
Section 29 FUNCTIONS OF ANSI.SYS
────────────────────────────────────────────────────────────────────
Esc[=7h Enable line wrap
Esc[=7l Disable line wrap
═══════════════════════════════════════════════════════════════════
ASCII Bell ^G
───────────────────────────────────────────────────────────────────
Esc[#;string;p Reassign a "string" or another value to a key.
The first # or esc[#;#p can be also written as 0;# for extended
ASCII key codes.
═══════════════════════════════════════════════════════════════════
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 167
Section 30 HELP SYSTEMS, REGISTRATION SITES, SUPPORT
────────────────────────────────────────────────────────────────────
Section 30: HELP SYSTEMS, REGISTRATION SITES, SUPPORT
If you would like to register Oblivion/2, find some utilities for
it, or simply get some help and/or support for the software, please
refer to the following help systems:
World Headquarters:
Alderaan
Tel. 1-908-224-8780
Email: 141:100/8@OSNet (MindCrime)
USA Headquarters, Support Network World Headquarters:
Dark Side of the Moon
Tel. 1-810-979-3178
Email: 141:200/3@OSNet (Patriot)
152:5810/0@ImpactNet
1:120/412@FidoNet (James Waleke)
Canadian Headquarters, World Registration Site:
Stronghold Enterprises
Tel. 1-403-456-5699
#108 13806-24 St
Edmonton, AB
T5Y 1J7
Canada
Email: 141:500/0@OSNet (Lasher)
152:500/0@ImpactNet
23:100/17@BlackNet
20:100/4@TabNet
50:200/0@fORCENEt
109:403/0@DarkNet
111:1403/0@Sysop's TechNet (Vincent Danen)
100:1403/4@RPGNet
411:230/0@IVNet
753:1000/102@GPBNet
1:342/52@FidoNet
obv@acid.org
Support Sites
─────────────
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 168
Section 30 HELP SYSTEMS, REGISTRATION SITES, SUPPORT
────────────────────────────────────────────────────────────────────
These support sites always have the latest version of Oblivion/2
available for download or file-request, can provide help for setting
up Oblivion/2 and will try to help when you have problems with
Oblivion/2:
Lasher Stronghold Enterprises 141:500/0 1-403-456-5699
Patriot Dark Side of the Moon 141:200/3 1-810-979-3178
MindCrime Alderaan 141:100/8 1-908-224-8780
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 169
Section 31 ACKNOWLEDGEMENTS, CREDITS
────────────────────────────────────────────────────────────────────
Section 31: ACKNOWLEDGEMENTS, CREDITS
Oblivion/2 uses the JAM(mbp) API - Copyright 1993 Joaquim
Homrighausen, Andrew Milner, Mats Birch, Mats Wallin. ALL RIGHTS
RESERVED.
All brand and product names are copyrighted material, trademarks or
registered trademarks of their respective holders:
FrontDoor Joaquim Homrighausen, Absolute Solutions
InterMail Further Development, Inc.
BinkleyTerm Bit Bucket Software
McMail Albert Freriks and Gordian Schuermann
D'Bridge Mosaic Press
Portal of Power The Portal Team
FastEcho Software Technik Burchardt
GEcho Gerard J. van der Land
PKZIP, PKPAK PKWARE, Inc.
LHA Haruyasu Yoshizaki
PAK NoGate Consulting
ARJ Robert K. Jung
ARC Systems Enhancements Associates
RAR Eugene Roshal
UC2 Ad Infinitum Programs
HA Harri Hirvola
DWC Dean W. Cooper
Hyper P. Sawatzki and K.P. Nischke
DSZ, GSZ Omen Technology Inc.
HSLink Samuel H. Smith
vFAST International TeleCommunications
X00 Raymond L. Gwinn
Avatar G. Adam Stanislav
TheDraw TheSoft Programming Service and Ian E. Davis
Norton Utilities Symantec Corporation
DESQview, QEMM QuarterDeck Office Systems
Microsoft, MS-DOS,
Windows, Windows95 Microsoft Corporation
IBM, PC-DOS, OS/2 International Business Machines
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 170
Section 32 THANKS
────────────────────────────────────────────────────────────────────
Section 32: THANKS
I would like to thank all of the people who contributed to this
documentation with their ideas and suggestions. There are too many
of you to mention, but rest assured I remember you all. I would
like to send a very special thank you to Eric Katz (formerly known
as Darkened Enmity) for making Oblivion/2 such an excellent program,
and to Murray Stokely (aka Shivan Bastard) for continuing on to make
Oblivion/2 even better. I'd like to thank all of the beta sysops
for their hard work and dedication to the progression of this
software. Finally, but certainly not least, I'd like to thank God
for the talent He's given me in writing this documentation.
If you would like to get in contact with me, for either support or
suggestions for the future of the documentation (to either make
things easier to understand or add something I may have forgotten)
please look above for all of the many ways you can contact me.
.──+──.
────────────────────────────────────────────────────────────────────
Oblivion/2 v2.35 Bulletin Board System Documentation 171